【发布时间】:2023-03-23 12:39:01
【问题描述】:
请注意:我阅读了Why JsonConverter.WriteJson() never gets called, although JsonConverter.ReadJson() does get called?,但答案并不令人满意。
我有一个 JsonConverter。 ReadJson 被调用并且效果很好,但 WriteJson 从未被调用。然而,序列化发生得很好。虽然这在短期内很棒,但我担心某些情况最终会调用我的 WriteJson 并且会发生故障。
我正在使用 JsonConvert.Deserialize,它带有一个新的 JsonSerializerSettings 对象,我提供了一个转换器列表。有3个转换器。在前两个中,WriteJson 和 ReadJson 的调用完全符合我的预期(它们反序列化小数和整数,因此我可以处理逗号和货币符号)。第三个,它序列化一个typeof Enum(基于一个int),只是不调用WriteJson,但是json写得很好(事实上,完全按照我的意愿)。
我已重写 CanWrite 以返回 true,但我认为这不是问题。
如何强制我的 JsonConverter 使用我的 WriteJson 方法?
谢谢!
【问题讨论】:
-
不要描述你的代码,编辑你的问题并包含你正在使用的实际代码和一个小的可运行的 Main 函数,我们可以复制和粘贴并运行我们自己,以证明没有调用写入。