c# - 具有动态元素名称的序列化和通用列表

标签 c# serialization

我想知道在序列化以下类时是否可以更改通用列表的元素名称。

[Serializable, XmlRoot(ElementName= "MyFoo")]
public class Foo : List<Foo2>
{
    #region Private Members
    #endregion

    #region Public Properties
    #endregion
}

[Serializable, XmlRoot(ElementName="YourFoo")]
public class Foo2
{
}


The output is:
<MyFoo>
  <Foo2/>
</MyFoo>

The desire output:
<MyFoo>
  <YourFoo/>
</MyFoo>

最佳答案

只需将 Foo2 上的 XmlRoot 更改为 XmlType 并将 ElementName 更改为 TypeName,像这样:

[Serializable, XmlType(TypeName="YourFoo")]
public class Foo2
{
}

关于c# - 具有动态元素名称的序列化和通用列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9298360/

相关文章:

javascript - Python 到 JavaScript 对象图(反)序列化

java - 如何在java中序列化OBJECT ARRAY?

c# - 保存 XML 时 XmlWriter 格式困惑

c# - 如何许可使用 C# 开发的应用程序

C# 嵌套类的序列化

c# - 反序列化具有未知元素顺序的 XML

c# - C# 套接字编程新手

c# - 如何在程序未运行时更新动态磁贴?

c# - 加入两个列表比较它们的元素属性

java - Java:序列化到字节缓冲区的最快方法