Serializing/Deserializing JSON 在 Dynamics CRM 2013/2015 插件中
Serializing/Deserializing JSON in Dynamics CRM 2013/2015 Plugin
我正在为 Dynamics 2015 开发一个插件。该插件需要一些设置信息,我认为在不安全配置中使用 json 对象是个好主意。此外,还有一个外部系统正在将一些 json 写入该插件响应的实体中的字段,我需要从中提取信息。
我尝试使用 JavascriptSerializer 对象反序列化 json 但我得到了 System.MethodAccessException,经过一些研究,我发现我无法在沙盒模式下使用 JavascriptSerializer .
我不想将 ILMerge Json.Net 插入到我的程序集中,那么有没有其他方法可以在我的插件代码中 serialize/deserialize json?
这就是我解决这个问题的方法
给出
string wsData = string.Empty;
plItem.GetType() == typeof(CategoryInfo);
和
[DataContract]
public class CategoryInfo{
[DataMember]
public string AllPropertiesToSerialize{ get; set; }
}
然后
using (var ms = new MemoryStream())
{
var js = new DataContractJsonSerializer(typeof(CategoryInfo));
js.WriteObject(ms, plItem);
ms.Position = 0;
var sr = new StreamReader(ms);
wsData = sr.ReadToEnd();
}
感谢@dbc 和@Guido Preite 的指点
我正在为 Dynamics 2015 开发一个插件。该插件需要一些设置信息,我认为在不安全配置中使用 json 对象是个好主意。此外,还有一个外部系统正在将一些 json 写入该插件响应的实体中的字段,我需要从中提取信息。
我尝试使用 JavascriptSerializer 对象反序列化 json 但我得到了 System.MethodAccessException,经过一些研究,我发现我无法在沙盒模式下使用 JavascriptSerializer .
我不想将 ILMerge Json.Net 插入到我的程序集中,那么有没有其他方法可以在我的插件代码中 serialize/deserialize json?
这就是我解决这个问题的方法
给出
string wsData = string.Empty;
plItem.GetType() == typeof(CategoryInfo);
和
[DataContract]
public class CategoryInfo{
[DataMember]
public string AllPropertiesToSerialize{ get; set; }
}
然后
using (var ms = new MemoryStream())
{
var js = new DataContractJsonSerializer(typeof(CategoryInfo));
js.WriteObject(ms, plItem);
ms.Position = 0;
var sr = new StreamReader(ms);
wsData = sr.ReadToEnd();
}
感谢@dbc 和@Guido Preite 的指点