如何序列化XMLNode类型的属性

本文关键字:属性 类型 XMLNode 序列化 | 更新日期: 2023-09-27 18:20:12

我有一个公共类,其属性如下:

[serializable]
public class Data
{
Public XmlNode VariableXMLData {get; set;}
}

VariableXMLData节点inturn包含一个xml节点。例如:

VariableXMLData.OuterXML is "
<VariableXMLData>
<Change>Major</Change><Reason>Unknown</Reason>
</VariableXMLData> ". 

问题是:当我序列化这个类时,输出看起来像:

<Data>
<VariableXMLData>
<VariableXMLData>
<Change>Major</Change><Reason>Unknown</Reason>
</VariableXMLData>
</VariableXMLData>
</Data> 

我该如何避免元素名称出现多个标记呢。我希望<VariableXMLData> 只有一个节点

如何序列化XMLNode类型的属性

我会选择这样的东西:

[serializable]
public class Data
{
    [XmlIgnore]
    Public XmlNode VariableXMLData {get; set;}
    [XmlElement(ElementName="VariableXMLData")]
    Public XmlNode VariableXMLDataParts {
      get{
         //handle the deserialization => returning the nodes you wish to return
         // example only return the roots descendants...
      }
      set{
           // handle your serialization if needed
      }
}

不确定,但我认为你可以将第二个方法放在内部或受保护,这样它就不会显示给其他程序集