我有一个简单的对象图,我想序列化,我无法找到解决这个问题的方法。这是:
[XmlRoot]
public partial class MyData
{
private List<MyDatum> itemsField;
public MyData()
{
this.anyAttrField = new List<System.Xml.XmlAttribute>();
this.itemsField = new List<MyDatum>();
}
[XmlElement(Type = typeof(MyDatum))]
public List<MyDatum> Items
{
get
{
return this.itemsField;
}
set
{
this.itemsField = value;
}
}
}
这会生成以下XML:
<MyData>
<Items>
<MyDatum/>
<MyDatum/>
...
</items>
</MyData>
我想删除“Items”容器标记来生成它:
<MyData>
<MyDatum/>
<MyDatum/>
...
</MyData>
我尝试了各种解决方案,但似乎无法找到解决方案。
答案 0 :(得分:22)
在[XmlElement]
属性中指定元素名称:
[XmlElement("MyDatum", Type = typeof(MyDatum))]
public List<MyDatum> Items {
// ...
}
根据MSDN上的this article,这将删除序列化项目周围的包装元素。