From this answer我有类JsonCreationConverter<T>
和一些具体类型的实现。但是这个抽象类错过了WriteJson
方法的实现。
通过互联网我找到了代码:
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
//use the default serialization - it works fine
serializer.Serialize(writer, value);
}
但是这个代码最终会出现StackOverflowException,因为它一直在调用自己(当然)。 其他解决方案用于具体对象实现,逐个序列化所有值。我真的想避免它,只想使用默认序列化,这对我来说没问题。只是为了避免调用我的JsonConverter进行序列化。我只需要反序列化。可能吗?怎么样?
答案 0 :(得分:9)
尝试覆盖转换器中的CanWrite
属性getter,使其返回false
。这将阻止在序列化期间使用转换器。
public override bool CanWrite
{
get { return false; }
}