具有动态元素名称的序列化和泛型列表
本文关键字:序列化 泛型 列表 动态 元素 | 更新日期: 2023-09-27 18:24:49
我想知道在序列化以下类时是否可以更改泛型列表的元素名称。
[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
{
}
不错,已经找了一段时间了:-)
如何控制List集合的元素名称,例如
[XmlElement(ElementName = "BOOKS")]
public static List<ObjBook> BookList = new List<ObjBook>();
XML结果:
<BOOKS>
<BOOK>
<Title>Title1</Title>
<Author>Auther1</Author>
</BOOK>
<BOOK>
<Title>Title2</Title>
<Author>Auther2</Author>
</BOOK>
</BOOKS>
我知道你可以设置XmlSerializer的XmlRootAttribute,但我很好奇它是否可以由List的属性完成?
(我确实考虑过创建一个新问题,但它关系密切,所以我认为可以)