C#System.Xml.Serialization自嵌套元素

我试图反序列化

            

 [XmlRoot("graph")] class graph { List _children = new List(); [XmlElement("node")] public Node[] node { get { return _children.ToArray(); } set { foreach(Node n in value) children.add(n) } }; } class Node { List _children = new List(); [XmlElement("node")] public Node[] node { get { return _children.ToArray(); } set { foreach(Node n in value) children.add(n) } }; } 

但它一直说对象没有创建,尝试设置子节点时遇到空引用。 上面有什么问题?

提前谢谢〜

你发出的是在set handler(s)中,如果不是null则添加:

 set { if(value != null) foreach(Node n in value) children.add(n) } 

我无法重现你的错误。 我使用了以下代码:

 string xml = @"           "; [XmlRoot("graph")] public class graph { [XmlElement("node")] public Node[] node; } public class Node { [XmlElement("node")] public Node[] children; } XmlSerializer serializer = new XmlSerializer(typeof(graph)); using (MemoryStream stream = new MemoryStream()) using (StreamWriter writer = new StreamWriter(stream)) { writer.Write(xml.Replace(Environment.NewLine, String.Empty)); writer.Flush(); stream.Position = 0; var graph = serializer.Deserialize(stream) as graph; } 

你可以发布用于反序列化的内容吗?