C#序列化在子类中删除属性?

时间:2010-01-20 14:33:07

标签: c# serialization xml-serialization

当我尝试序列化List<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的Name属性,但确实创建了一个带有OtherPCO属性的B类数组。如何让序列化程序包含Name?

1 个答案:

答案 0 :(得分:3)

集合以特定方式序列化,仅考虑集合的项目,而不考虑您添加到类中的额外属性。您需要将该集合包装在另一个不是集合的类中。

这应该会给你想要的结果:

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

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

}