将对象序列化为XML

本文关键字:XML 序列化 对象 | 更新日期: 2023-09-27 18:10:48

我在c#中设置了一个类,它将自己序列化为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,因为我希望它涉及到Node列表。它看起来是这样的……

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

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

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

将对象序列化为XML

你可以使用

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