我想将一个类序列化为:
<?xml version="1.0" encoding="utf-8"?>
<documents>
<document>
<element />
...
</document>
....
</documents>
我一直在尝试以下类层次结构:
public class A
{
[XmlArrayItem("document")]
public List<B> documents = new List<B>();
}
public class B
{
public string id;
[XmlArray("element")]
public List<C> elements = new List<C>();
}
public class C
{
public string name;
public string value;
}
不幸的是,我得到的是:
<?xml version="1.0" encoding="utf-8"?>
<A>
<documents>
<document>
<element />
</document>
</documents>
</A>
那么如何摆脱“A”,即最外层的类型名称?
更广泛的问题是,如何概括?如何在序列化期间跳过类层次结构中的任意“级别”?
答案 0 :(得分:2)
最外面的类叫做“root”。您必须使用[XmlRoot]进行设置。
然而,您还必须在文档上使用[XmlElement]而不是[XmlArrayItem],以使其成为根的子级别。