List <Int> XML序列化

3 c# xml

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

XmlSerializer xs = new XmlSerializer(typeof(List<int>));
Run Code Online (Sandbox Code Playgroud)

此代码(部分)创建默认根节点<ArrayOfInts>和每个节点:<int>.

是否可以设置不同的名称,而无需创建包装类?

谢谢

fya*_*sar 7

您可以将XmlArray和XMLArrayItem属性一起使用到变量声明的顶部.然后XmlSerializer在开始序列化定义的对象时考虑这些属性.让我举个例子说明你的代码;

您应该使用这些属性定义通用列表.

public class democlass
{

    [XmlArray("testList")]
    [XmlArrayItem("customitem")]
    public List<int> testList {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以向列表中添加值

    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);
Run Code Online (Sandbox Code Playgroud)

并序列化它.你会看到这个输出.

<democlass>
    <testList>
        <customitem>1</customitem>
        <customitem>2</customitem>
        <customitem>3</customitem>
    </testList>
</democlass>
Run Code Online (Sandbox Code Playgroud)

而已.

我希望这会有所帮助.

注意:神奇的是inisde XmlArrayXmlArrayItem属性,你可以在MSDN上找到更详细的信息.

问候