Skip to main content
Microsoft Dynamics CRM forum
Suggested answer

Unsecure Config – Error when parsing JSON in plugin code

editSubscribe (0) ShareShare
ReportReport
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? 

Attachments
  • 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
     

Helpful resources

Quick Links

New Blog Features Released!

Check out the new community blog features for viewers and authors…

Setting Up Knowledge Sources for Copilot…

Look at how configuring a comprehensive knowledge base is crucial…

Demystifying Copilot with Georg Glantschnig…

Industry experts answer burning questions directly from our amazing Community…

Leaderboard

#1
Andre Arnaud de Calavon Profile Picture

Andre Arnaud de Cal... 283,130 Super User

#2
Martin Dráb Profile Picture

Martin Dráb 222,689 Super User

#3
nmaenpaa Profile Picture

nmaenpaa 101,138

Featured topics

Product updates

Dynamics 365 release plans