List<int> testList = new List<int>();
testList.Add(1);
testList.Add(2);
testList.Add(3);

XmlSerializer xs = new XmlSerializer(typeof(List<int>));

此代码(部分)创建默认根节点<ArrayOfInts>和每个节点:<int>
是否可以在不创建包装类的情况下设置不同的名称?
谢谢

最佳答案

可以将xmlarray和xmlarrayitem属性一起使用到变量声明的顶部。然后,XmlSerializer在开始序列化定义的对象时考虑这些属性。让我用你的代码给你举个例子;
您应该使用这些属性定义通用列表。

public class democlass
{

    [XmlArray("testList")]
    [XmlArrayItem("customitem")]
    public List<int> testList {get;set;}
}

然后,
您可以将值添加到列表中
    static void Main(string[] args)
    {
        democlass d = new democlass();
        d.testList = new List<int>();
        d.testList.Add(1);
        d.testList.Add(2);
        d.testList.Add(3);

并将其序列化。你将看到这个输出。
<democlass>
    <testList>
        <customitem>1</customitem>
        <customitem>2</customitem>
        <customitem>3</customitem>
    </testList>
</democlass>

就是这样。
我希望这会有帮助。
注意:魔法是在XmlArrayXmlArrayItem属性中找到的,您可以在msdn上找到更详细的信息。
当做

10-06 06:24