2010-01-20 63 views
2

當我試圖序列List<C>()類型的人口實例,其中:C#序列化刪除子類中的屬性?

public class A<T> : List<T> 
{ 
    [XmlAttribute("Name")] 
    public string Name {get; set;} 
    public A() {} 
} 

public class B 
{ 
    [XmlAttribute("Other")] 
    public string OtherPCO { get; set:} 
} 

public class C : A<B> 
{ 

} 

序列化降低A類的名稱屬性,但確實造成B型與OtherPCO屬性的數組。我如何讓序列化程序包含名稱?

回答

3

集合以特定方式序列化,僅考慮集合的項目,而不是您添加到類中的額外屬性。您需要將該集合包裝在不是集合的另一個類中。

這應該給你想要的結果:

public class A<T> 
{ 
    [XmlAttribute("Name")] 
    public string Name {get; set;} 

    [XmlElement(typeof(T))] 
    public List<T> Items { get; set; } 

} 
+0

這很煩人!但是,謝謝你的例子。 – Oliver 2010-01-21 08:21:28