2015-09-30 60 views
0

我有一個列表,其中包含相同的基類,但不同的子類的項目。我怎樣才能反序列化呢?如何反序列化子類?

例如

class Base { 
} 

class Child: Base { 
    int Property { get; set; } 
} 

class Ser { 
    public List<Base> Values { get; set; } 
} 

感謝

回答

0

解串器沒有辦法自動推斷出你期望這孩子的類型。因此,您需要使用標籤告訴它的孩子的類型。 E.g:

YAML

- !!child 
    Property: 1 

- !!child 
    Property: 2 

C#

var deserializer = new Deserializer(); 
deserializer.RegisterTagMapping("tag:yaml.org,2002:child", typeof(Child)); 

var items = deserializer.Deserialize<Ser>(...); 

​​