当我尝试序列化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?
答案 0 :(得分:3)
集合以特定方式序列化,仅考虑集合的项目,而不考虑您添加到类中的额外属性。您需要将该集合包装在另一个不是集合的类中。
这应该会给你想要的结果:
public class A<T>
{
[XmlAttribute("Name")]
public string Name {get; set;}
[XmlElement(typeof(T))]
public List<T> Items { get; set; }
}