【问题标题】:C# serialization dropping property in subclass?C# 序列化在子类中删除属性?
【发布时间】:2010-01-20 14:33:07
【问题描述】:

当我尝试序列化 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 类型数组。如何让序列化程序包含名称?

【问题讨论】:

    标签: c# serialization xml-serialization


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-28
      • 2018-12-10
      • 1970-01-01
      相关资源
      最近更新 更多