请注意:我阅读了Why JsonConverter。WriteJson()从未被调用,尽管JsonConverter。ReadJson()是否被调用?但这是一个不能令人满意的答案。
我有一个JsonConverter。ReadJson的名字叫ReadJson,而且做得很好,但WriteJson从来没有叫过ReadJson。尽管如此,序列化还是很好的。虽然这在短期内非常棒,但我担心某些情况最终会打电话给我的WriteJson,有些事情会爆炸。
我正在使用JsonConvert。使用一个新的JsonSerializerSettings对象进行反序列化,我将向该对象提供一个转换器列表。有3个转换器。在前两个例子中,WriteJson和ReadJson的调用与我预期的完全一样(它们反序列化小数和整数,所以我可以处理逗号和货币符号)。第三个序列化了一种类型的Enum(基于int),只是不调用WriteJson,但json写得很好(事实上,正是我想要的)。
我已经重写CanWrite以返回true,但我不认为这是问题所在。
如何强制JsonConverter使用我的WriteJson方法?
谢谢!
永不终止。重读我自己的问题,然后把它弄明白。我只在调用Deserialize并在新的设置对象中传入格式化程序时使用自定义格式化程序,所以不调用WriteJson()是有道理的。
在属性的Attribute中使用格式化程序可以正确调用方法。