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

标签 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 类型的数组。如何让序列化器包含名称?

最佳答案

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

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

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

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

}

关于C# 序列化在子类中删除属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2102047/

相关文章:

c# - 如何防止 XmlSerializer 杀死字符串中的换行符?

c++ - 二进制 I/O 到具有二维动态数组的文件

c++ - 缓冲区大小每次增加

c# - 安装 C# 应用程序时从用户那里获取一些参数

c# - 非常具体的 C# 到 VB.NET 的转换问题

c++ - 如何序列化GMP mpf类型?

c# - 将 JSON 转换为 XML

c# - 简单的 C# Xml 序列化

c# - 实现接口(interface)的实体的通用配置

c# - C# 中是否有 XNOR(逻辑双条件)运算符?