C# 未调用Newtonsoft WriteJson(),但已调用ReadJson()

C# 未调用Newtonsoft WriteJson(),但已调用ReadJson(),c#,json.net,C#,Json.net,请注意:我读过,但答案并不令人满意 我有一个JsonConverter。ReadJson被调用并且工作得很好,但WriteJson从未被调用。然而,序列化发生得很好。虽然这在短期内是非常棒的,但我担心某些情况最终会影响我的写作,并导致一些事情爆发 我正在使用JsonConvert.Deserialize和一个新的JSONSerializerSetting对象,并向其提供一个转换器列表。有3个转换器。在前两个例子中,WriteJson和ReadJson的调用与我预期的完全一样(它们反序列化小数和整

请注意:我读过,但答案并不令人满意

我有一个JsonConverter。ReadJson被调用并且工作得很好,但WriteJson从未被调用。然而,序列化发生得很好。虽然这在短期内是非常棒的,但我担心某些情况最终会影响我的写作,并导致一些事情爆发

我正在使用JsonConvert.Deserialize和一个新的JSONSerializerSetting对象,并向其提供一个转换器列表。有3个转换器。在前两个例子中,WriteJson和ReadJson的调用与我预期的完全一样(它们反序列化小数和整数,因此我可以处理逗号和货币符号)。第三个是序列化一个类型的Enum(基于int),它不调用WriteJson,但是json写得很好(事实上,正如我所希望的那样)

我已经重写了CanWrite以返回true,但我认为这不是问题所在

如何强制JsonConverter使用WriteJson方法


谢谢

无所谓。重新阅读我自己的问题,并找出答案。我只在调用反序列化并在新的设置对象中传入格式化程序时使用自定义格式化程序,因此不调用WriteJson()是有意义的


在属性的属性中使用格式化程序可以正确调用这些方法。

无需担心。重新阅读我自己的问题,并找出答案。我只在调用反序列化并在新的设置对象中传入格式化程序时使用自定义格式化程序,因此不调用WriteJson()是有意义的


在属性的属性中使用格式化程序可以正确调用方法。

不要描述您的代码,编辑您的问题,包括您正在使用的实际代码和一个小的可运行主函数,我们可以复制、粘贴并运行我们自己的函数,以演示未调用的写入。不要描述您的代码,编辑您的问题,并包括您正在使用的实际代码和一个小的可运行的主函数,我们可以复制、粘贴并自行运行该函数,以演示未调用的写入操作。