У меня есть открытый класс с таким свойством, как:
[serializable]
public class Data
{
Public XmlNode VariableXMLData {get; set;}
}
Узел VariableXMLData inturn содержит xmlnode. Например, скажите:
VariableXMLData.OuterXML is "
<VariableXMLData>
<Change>Major</Change><Reason>Unknown</Reason>
</VariableXMLData> ".
Проблема: когда я сериализую этот класс, вывод выглядит следующим образом:
<Data>
<VariableXMLData>
<VariableXMLData>
<Change>Major</Change><Reason>Unknown</Reason>
</VariableXMLData>
</VariableXMLData>
</Data>
Как я могу избежать нескольких тегов для имени элемента здесь. Я хочу иметь только один узел для <VariableXMLData>
Я бы пошел на что-то вроде этого:
[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
}
}
Не уверен в этом, но я думаю, что вы можете поместить второй метод в качестве внутреннего или защищенного, поэтому он не будет отображаться для других сборок