我正在构建一个带有预制类型对象的游戏场景编辑器,并使用Newtonsofts Json.NET来保存我的场景。保存场景时,我只想保存原始预制件中的对象更改值。因此,我希望能够为Json.Net序列化程序指定一个手动检查方法,我可以在决定将值写入文件之前检查值是否已更改。
我知道如果我使用[DefaultValue()]
属性和DefaultValueHandling = DefaultValueHandling.Ignore
,我可以避免写入JSON,但是由于该值可能与默认值不同,因此这种方法对我不起作用。我希望能够根据其值和情况手动指定要写入的值。
最好是我可以提供一种方法,例如bool shouldWriteMember(object obj, MemberInfo info)
,所有内容都可以通过我可以以某种方式附加到序列化程序的方式进行操作。
在Json.NET中有什么办法可以解决这个问题吗?谢谢!