我有一个想要序列化的简单对象图,但我一直无法找到解决此问题的方法。在这里:
[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>
我尝试了各种解决方案,但似乎无法找到解决方案。
最佳答案
在您的 [XmlElement]
中指定一个元素名称属性:
[XmlElement("MyDatum", Type = typeof(MyDatum))]
public List<MyDatum> Items {
// ...
}
根据 this article在 MSDN 上,这将删除序列化项目周围的包装器元素。
关于c# - 如何让 XmlSerializer 不序列化列表容器标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8199738/