Skip to main content

Notifications

Announcements

No record found.

Customer experience | Sales, Customer Insights,...
Suggested answer

Unsecure Config – Error when parsing JSON in plugin code

Posted on by 5

Hi,

I set the unsecure config to the following JSON: 
{/DebugVirtualPlugin/:/true/} 
 
Per online jsonlint.com, it’s a valid JSON 

Trace log of the unsecure config string 
Code: Context.Trace($/unsecure: {unsecure.EscapeInterpolation()} ); 
Output: unsecure: {/DebugVirtualPlugin/:/true/} 

Trying to deserialize the JSON into the following class: 
public class UnsecureConfig 
{ 
   [JsonPropertyName(/DebugVirtualPlugin/)] 
   public string DebugVirtualPlugin { get; set; } 
} 

Code to deserialize 
var unsecureConfig = System.Text.Json.JsonSerializer.Deserialize<UnsecureConfig>(/{///DebugVirtualPlugin///:///true///}/); 

 

Error 
System.Runtime.Serialization.SerializationException: Element 'http://schemas.datacontract.org/2004/07/System.Collections.Generic:value' contains data from a type that maps to the name 'Model.Config:UnsecureConfig'. The deserializer has no knowledge of any type that maps to this name. Consider changing the implementation of the ResolveName method on your DataContractResolver to return a non-null value for name 'UnsecureConfig' and namespace 'Model.Config'. 

 

This error happens when I am trying to deserialize in plugin code, but in a Test method, it deserializes without a problem: 
 

[TestMethod] 
public void DeserializeJson_UnsecureConfig_Test() 
{ 
   var json = /{///DebugVirtualPlugin///: ///true///}/; 
   var unsecureConfig = System.Text.Json.JsonSerializer.Deserialize<UnsecureConfig>(json); 
   Assert.IsTrue(unsecureConfig.DebugVirtualPlugin == /true/);  
} 

Any thoughts? 

  • Unsecure Config – Error when parsing JSON in plugin code
    Hi Dengliang,
     
    Thank you for responding and creating the code for this use case.
     
    I am able to do the same in a Test Method:
     
    BUT, the problem is that if you try to do this within Plugin Code, the Deserialize method does not work and throw this error:
    System.Runtime.Serialization.SerializationException: Element 'http://schemas.datacontract.org/2004/07/System.Collections.Generic:value' contains data from a type that maps to the name 'Model.Config:UnsecureConfig'. The deserializer has no knowledge of any type that maps to this name. Consider changing the implementation of the ResolveName method on your DataContractResolver to return a non-null value for name 'UnsecureConfig' and namespace 'Model.Config'. 
     
    Any idea?
     
    Best,
    Tony
  • Suggested answer
    Dengliang Li Profile Picture
    Dengliang Li Microsoft Employee on at
    Unsecure Config – Error when parsing JSON in plugin code
    Hi,
     
    Here is my code to deserialize the JSON.
    You can refer to the following official documentation.
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Text.Json;
    using System.Text.Json.Serialization;
    namespace ConsoleApp1
    {
        internal class Program
        {
            static void Main(string[] args)
            {
                var json = @"{""DebugVirtualPlugin"":true}";
     
                var unsecureConfig = System.Text.Json.JsonSerializer.Deserialize<UnsecureConfig>(json);
     
                Console.WriteLine($"DebugVirtualPlugin: {unsecureConfig.DebugVirtualPlugin}");
            }
        }
     
        public class UnsecureConfig
        {
            [JsonPropertyName("DebugVirtualPlugin")]
            public bool DebugVirtualPlugin { get; set; }
        }
    }
     
     
    Best Regards,
    Dengliang Li
     

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

December Spotlight Star - Muhammad Affan

Congratulations to a top community star!

Top 10 leaders for November!

Congratulations to our November super stars!

Tips for Writing Effective Suggested Answers

Best practices for providing successful forum answers ✍️

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 291,280 Super User 2024 Season 2

#2
Martin Dráb Profile Picture

Martin Dráb 230,214 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,156

Leaderboard

Featured topics

Product updates

Dynamics 365 release plans