【发布时间】:2014-06-05 11:43:32
【问题描述】:
我正在使用 Newtonsoft.Json 将我的 C# 对象序列化/反序列化到 JSON。 我的 C# 对象具有以下类型的属性:
List<BaseClass> objects { get; set; }
此集合包含不同的子对象(例如 - ChildClass1、ChildClass2)。
序列化为 JSON 工作正常,但在反序列化时它会在集合中创建 BaseClass 的对象(这很明显 :))。
有没有一种方法可以在反序列化时创建具体的子对象?
我尝试通过实现CustomCreationConverter<BaseClass> 创建自定义转换器。但问题是被覆盖的 Create 方法只给了我类型,并且基于此我无法决定返回哪个对象(ChildClass1 或 ChildClass2)
我的 JSON 字符串有一个 Type 属性,通过它我可以识别要创建的子对象。
非常感谢任何帮助。
【问题讨论】:
标签: c# json serialization