Какой Xml-класс использовать для массива XmlNode[]

#c# #xml #xml-serialization

#c# #xml #xml-сериализация

Вопрос:

Я сгенерировал несколько классов из XSD, которые отлично работали, и я создаю данные и сериализую их в XML, все работает нормально.

За исключением того, что у меня есть одно свойство, которое является массивом XmlNode , и я ни за что в жизни не могу понять, какой класс использовать. Не эксперт по XML.

Свойство в классе, которое было сгенерировано, выглядит следующим образом.

 /// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string type
{
    get
    {
        return this.typeField;
    }
    set
    {
        this.typeField = value;
    }
}
  

И я построил все вокруг него к этому моменту:

 timeInterval.AdditionalData = new[]
{
    new AdditionalDataType()
    {
        type = "DOECode",
        Any = new XmlNode[] { ... }
    }
 };
  

Ожидаемый Xml после сериализации должен быть следующим:

 <AdditionalData type="DOECode">11</AdditionalData>
  

Какой класс я могу поместить в ‘Any’, чтобы заполнить значением внутреннего текста, не изменяя созданный класс.

Ответ №1:

Решили проблему.

Решением было создать XmlDocument и создать узел из документа.

 var node = (new XmlDocument()).CreateNode(XmlNodeType.Text, string.Empty, string.Empty);
  

Затем присвоите значение innerText:

 node.InnerText = reason.ExportCode;
  

Он сгенерировал следующее.

 <AdditionalData type="DOECode">TEST CODE</AdditionalData>