2013-04-25 182 views
1

我有一个C#安装程序中的类,它将自己序列化为XML,并且该类还具有序列化的对象列表。将对象序列化为XML

[XmlRoot("Config")] 
public class ConfigSerializer { 

    [XmlArray("Nodes")] 
    public List<Node> LstNodes { get; set; } 

} 

这里是Node的类声明。

[XmlRoot("N")] 
public class Node { 
    // has a few different properties 
} 

问题:当我序列ConfigSerializer的实例到XML不序列化XML作为我期待它与问候到节点列表。它看起来像这样...

<Config> 
    <Nodes> 
    <Node></Node> 
    </Nodes> 
</Config> 

但我希望它看起来像这样(因为XmlRoot声明节点类)...

<Config> 
    <Nodes> 
    <N></N> 
    </Nodes> 
</Config> 

回答

4

您可以使用此

[XmlRoot("Config")] 
    public class ConfigSerializer 
    { 
     [XmlArray("Nodes"),XmlArrayItem("N")] 
     public List<Node> LstNodes { get; set; } 
    } 
+0

XmlArray属性是肯定的解决方案,+1 – Amicable 2013-04-25 15:54:22

+0

这样做的窍门。谢谢! – Jagd 2013-04-25 16:04:39