Json   发布时间:2022-04-22  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在JSON.Net中序列化和反序列化时,如何从类型名称中省略程序集名称?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我们有一个合同装配,其中包含我们所有的数据合同.我们正在使用 JSON.net将我们的数据合同序列化为json.

JSON.Net在序列化的$type属性添加了类型名称和程序集名称.由于我们所有的数据合同都在同一个程序集中,并且总是在当前应用程序域中加载,因此我们应该可以省略它.

我们怎样才能做到这一点?

谢谢

@L_489_7@

您可以在JsonserializerSetTings中使用Binder属性.

博客文章(由图书馆作者撰写)描述了步骤:http://james.newtonking.com/archive/2011/11/19/json-net-4-0-release-4-bug-fixes.aspx

简而言之,您创建一个派生自serializationBinder的自定义类并覆盖两个方法

> BindToName(输入serializedType,输出字符串assemblyName,输出字符串typeName)
> BindToType(字符串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);
}

大佬总结

以上是大佬教程为你收集整理的在JSON.Net中序列化和反序列化时,如何从类型名称中省略程序集名称?全部内容,希望文章能够帮你解决在JSON.Net中序列化和反序列化时,如何从类型名称中省略程序集名称?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。