【发布时间】:2021-01-20 13:31:21
【问题描述】:
我的问题几乎可以这样回答:https://stackoverflow.com/a/24224465/454754 但是当我的属性被替换时,我真的不知道如何使它工作(即我基本上有一个新版本的对象)。
特别是我有一堂课
public class Something {
public decimal? Fee { get; set;}
}
我使用 JSON.Net 序列化并存储在外部存储(数据库)中。
现在我想要一个新版本的同一个类:
public class Something {
public Fee Fee { get; set;}
}
public class Fee {
public decimal? Amount { get; set; }
public int Type { get; set; }
}
但是我需要能够将旧实例反序列化为新实例(如果我再次序列化它们,它们应该保存为新版本)。
只要不序列化,我不介意添加新的内部/私有属性。
我想避免使用NewFee 之类的新公共财产。
我可能在这里遗漏了一些东西,感觉应该可以使用 JSON.Net 提供的所有钩子。
【问题讨论】:
-
我可能正在研究自定义反序列化器。
-
对于 System.Text.Json:How to write custom converters for JSON serialization (marshalling) in .NET