JSON.NET:JsonCreationConverter工作WriteJson实现

Zok*_*oka 5 c# serialization json.net

从这个答案我有类JsonCreationConverter<T>和具体类型的一些实现.但是这个抽象类错过了WriteJson方法的实现.

通过互联网我找到了代码:

public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
    //use the default serialization - it works fine
    serializer.Serialize(writer, value);
}
Run Code Online (Sandbox Code Playgroud)

但是这个代码最终会出现StackOverflowException,因为它一直在调用自己(当然).其他解决方案用于具体对象实现,逐个序列化所有值.我真的想避免它,只想使用默认序列化,这对我来说没问题.只是为了避免调用我的JsonConverter进行序列化.我只需要反序列化.可能吗?怎么样?

Bri*_*ers 9

尝试覆盖CanWrite转换器中的属性getter以使其返回false.这将阻止在序列化期间使用转换器.

    public override bool CanWrite
    {
        get { return false; }
    }
Run Code Online (Sandbox Code Playgroud)