JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在自定义JsonConverter中使用默认序列化大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个复杂的对象图,我使用Json.NET序列化/反序列化.一些对象派生自一个抽象类,所以为了使反序列化工作正常,我需要创建一个自定义的JsonConverter.它唯一的作用是在反序列化时间内选择抽象类的适当具体实现,并允许Json.NET继续进行.

我想要序列化的时候出现问题.我根本不需要做任何事情.我想要得到完全相同的行为,我会得到使用JsonConvert.serializeObject没有自定义JsonConverter.

但是,由于我使用自定义JsonConverter类进行反序列化需求,所以我被迫提供了一个WriteJson实现.由于WriteJson是抽象的,所以我不能仅仅调用base.WriteJson,但是我要做的就是这样做.所以我的问题是,我该用什么方法来获得简洁的默认行为?换一种说法:

public override void WriteJson(JsonWriter writer,object value,Jsonserializer serializer)
{
    // what goes here to get default processing?
}

解决方法

在您的自定义 JsonConverter中,覆盖 CanWrite并返false:
public override bool CanWrite { get { return false; } }

    public override void WriteJson(JsonWriter writer,Jsonserializer serializer)
    {
        throw new NotImplementedException();
    }

那么你可以抛出WriteJson的异常,因为它不会被调用.

大佬总结

以上是大佬教程为你收集整理的如何在自定义JsonConverter中使用默认序列化全部内容,希望文章能够帮你解决如何在自定义JsonConverter中使用默认序列化所遇到的程序开发问题。

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

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