c# - 在 CRM Online 插件中序列化“实体”类型的对象
问题描述
我要解决的问题是,我需要将实体的 Target/Pre/Post-Image 序列化为 json 字符串。我知道我们不能在插件中包含 nuget 库,因为 ILmerge 不是一个选项。这是我尝试过的:
var jStr = Serialize((Entity)excutionContext.InputParameters["Target"]);
public static string Serialize<TEntity>(TEntity dataObject)
{
using (var stream = new MemoryStream())
{
var serializer = new DataContractJsonSerializer(typeof(TEntity));
serializer.WriteObject(stream, dataObject);
return Encoding.UTF8.GetString(stream.ToArray());
}
}
但是我遇到了以下异常,无法弄清楚我要做什么来解决这个问题:
System.Security.SecurityException: '数据合同类型'System.Collections.Generic.KeyValuePair`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Object, mscorlib , Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]' 不能在部分信任中序列化,因为成员 'key' 不是公开的。'
解决方案
推荐阅读
- python - 模型在 Keras 中运行良好,但在 Tensorflow 中不行
- bash - 如何根据 shell 脚本中的 for 循环索引增加选项卡数
- r - R:将两列组合转换为各种列
- c++ - Qt 使用 UI 表单创建自定义小部件
- django - 如何在 django 和 DRF 中使用“路由器”
- javascript - 使用本机文件系统 API 将文件保存到特定位置而无需用户交互?
- java - 在 Eclipse 中创建 JAR 失败
- python - 如何在pandas groupby中获得最少的值出现次数
- google-cloud-platform - 谷歌云功能端点在伊朗被封锁
- codenameone - 如何将给定范围内所有单元格中的值相加