名单

2016-02-04 33 views
0

比方说,我有下面的C#类名单

[JsonObject(MemberSerialization.OptIn)] 
public class Parent 
{ 
    [JsonProperty] 
    public int SharedProp { get; set; } 
} 

public class ChildA : Parent 
{ 
    [JsonProperty] 
    public string ChildAProperty { get; set; } 
} 

public class ChildB : Parent 
{ 
    [JsonProperty] 
    public string ChildAProperty { get; set; } 
} 

现在,我创建了一个List<Parent>到包含0到n的对象。列表的序列化工作正常,并给我一个有效的JSON文件,我可以反序列化。问题是,我目前只收到List<Parent>,并且没有ChildAChildB对象。

我正在使用Newtonsoft JSON串行器/解串器。有什么办法可以达到这个目的吗?还是我必须将它分成单独的文件/列表?

回答

2

您需要在JsonSerializerSettings中指定TypeNameHandling。以this article为例。

+0

完美的作品!重要的是,我也必须在反序列化过程中使用它。 – Freddy