如何在自定义JsonConverter中使用默认序列化

前端之家收集整理的这篇文章主要介绍了如何在自定义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的异常,因为它不会被调用.

原文链接:https://www.f2er.com/js/152587.html

猜你在找的JavaScript相关文章