我想知道在序列化下面的类时是否可以更改通用列表的元素名称。
[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>
答案 0 :(得分:2)
只需将XmlRoot
上的Foo2
更改为XmlType
,将ElementName
更改为TypeName
,如下所示:
[Serializable, XmlType(TypeName="YourFoo")]
public class Foo2
{
}
答案 1 :(得分:0)
很好,已经有一段时间了:-)
如何控制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的属性来完成?
(我确实考虑过创建一个新问题,但是它是如此紧密相关,所以我认为还可以)