在JSON.Net中序列化和反序列化时,如何从类型名称中省略程序集名
发布时间:2020-12-16 18:40:18 所属栏目:百科 来源:网络整理
导读:我们有一个合同装配,其中包含我们所有的数据合同.我们正在使用 JSON.net将我们的数据合同序列化为json. JSON.Net在序列化的$type属性中添加了类型名称和程序集名称.由于我们所有的数据合同都在同一个程序集中,并且总是在当前应用程序域中加载,因此我们应该可
我们有一个合同装配,其中包含我们所有的数据合同.我们正在使用
JSON.net将我们的数据合同序列化为json.
JSON.Net在序列化的$type属性中添加了类型名称和程序集名称.由于我们所有的数据合同都在同一个程序集中,并且总是在当前应用程序域中加载,因此我们应该可以省略它. 我们怎样才能做到这一点? 谢谢 解决方法
您可以在JsonSerializerSettings中使用Binder属性.
此博客文章(由图书馆作者撰写)描述了步骤:http://james.newtonking.com/archive/2011/11/19/json-net-4-0-release-4-bug-fixes.aspx 简而言之,您创建一个派生自SerializationBinder的自定义类并覆盖两个方法: > BindToName(输入serializedType,输出字符串assemblyName,输出字符串typeName) 您在这些方法中放置的逻辑将使您可以直接控制类型名称在$type字段中如何转换为字符串表示形式,以及类型在运行时如何定位$type的值. 在您的情况下,想要省略程序集名称,您可能会这样做: public override void BindToName( Type serializedType,out string assemblyName,out string typeName) { assemblyName = null; typeName = serializedType.FullName; } public override Type BindToType(string assemblyName,string typeName) { return Type.GetType(typeName); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby-on-rails – 将外部PDF插入到Prawn生成的文档中
- reactjs – 使用React在Mapbox GL中自定义标记
- flex URLLoader和URLRequest浅析
- c# – contenttypeorder和uniquecontenttypeorder之间的区别
- 使用xml和java代码混合控制UI界面
- iphone – 使用其他人的Mac将应用程序发布到App Store?
- STM32 CPU ID,Unique ID,Flash size register的定义
- c# – 使用单一服务在Linux上测试Windows DOTNET服务
- C:从星号不是乘法符号的字符串中删除所有星号
- cocos2dx TextFieldTTF