Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使XmlSerializer不序列化列表容器标记?_C#_Xml_Xml Serialization - Fatal编程技术网

C# 如何使XmlSerializer不序列化列表容器标记?

C# 如何使XmlSerializer不序列化列表容器标记?,c#,xml,xml-serialization,C#,Xml,Xml Serialization,我有一个简单的对象图,我想序列化,我还没有找到解决这个问题的方法。这是: [XmlRoot] public partial class MyData { private List<MyDatum> itemsField; public MyData() { this.anyAttrField = new List<System.Xml.XmlAttribute>();

我有一个简单的对象图,我想序列化,我还没有找到解决这个问题的方法。这是:

   [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;
            }
        }
    }
[XmlRoot]
公共部分类MyData
{
私有列表项字段;
公共MyData()
{
this.anyAttrField=新列表();
this.itemsField=新列表();
}
[XmlElement(类型=类型(MyDatum))]
公共清单项目
{
得到
{
返回此.itemsField;
}
设置
{
this.itemsField=值;
}
}
}
这将生成以下XML:

<MyData>
    <Items>
        <MyDatum/>
        <MyDatum/>
        ...
    </items>
</MyData>

...
我想删除“Items”容器标签以生成以下内容:

<MyData>
    <MyDatum/>
    <MyDatum/>
    ...
</MyData>

...

我尝试过各种解决方案,但似乎找不到解决方案

在属性中指定元素名称:

[XmlElement("MyDatum", Type = typeof(MyDatum))]
public List<MyDatum> Items {
    // ...
}
[XmlElement(“MyDatum”,Type=typeof(MyDatum))]
公共清单项目{
// ...
}

根据MSDN上的说明,这将删除序列化项目周围的包装器元素。

文章是正确的;这确实会删除包装器元素。顺便说一句,
Type=typeof(…)
是多余但无害的。语法是反直觉的,因为“Items”是“MyDatum”的集合,而不是单个对象“MyDatum”。在我的实验中,我从来没有想到这是一个可能的解决方案。我想你可以说“如果它不起作用,那就违背你的直觉。”类似于数组的问题和答案:。