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

标签 c# xmlserializer

我正在尝试反序列化

<graph>
<node>
   <node>
     <node></node>
   </node>
</node>
<node>
   <node>
     <node></node>
   </node>
</node>
</graph>

[XmlRoot("graph")]
class graph
{
   List<Node> _children = new List<node>();

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

class Node
{
   List<Node> _children = new List<node>();

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

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

提前致谢~

最佳答案

你的问题在设置的处理程序中,如果不为空则添加:

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

关于C# System.Xml.Serialization 自嵌套元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2851454/

相关文章:

c# - 在新机器上安装后抛出 InvalidCastException

c# - 如何在类库项目中使用 TagBuilder?

c# - 通过消息契约重用类型

c# - TimeSpan.ParseExact 返回 System.FormatException

c# - 通用 XML 序列化程序

c# - 如何使用 XmlSerializer 生成标签前缀

c# - 无法重载具有类型约束的泛型方法

c# - 我怎样才能确保下拉列表的列表总是下拉而不是向上

c# - 如何控制 XmlSerializer 添加默认命名空间的位置

c# - 可序列化字典,如何设置键名?