Предположим, у меня есть следующая структура класса:
[XmlInclude(typeof(CustomNode))]
[XmlInclude(typeof(CustomNode2))]
[XmlRoot("node")]
class Node
{
[XmlElement("node")]
public Node[] Children { get; set; }
}
[XmlRoot("custom-node")]
class CustomNode : Node { }
[XmlRoot("custom-node-2")]
class CustomNode2 : Node { }
Я создаю следующую структуру:
var root = new Node { Children = new Node[2] };
root.Children[0] = new CustomNode();
root.Children[1] = new CustomNode2();
Когда я сериализую эту структуру в XML, я получаю следующий вывод:
<node>
<node xsi:Type="CustomNode"/>
<node xsi:Type="CustomNode2"/>
</node>
Но я хотел бы увидеть (и иметь возможность правильно загрузить) что-то вроде этого:
<node>
<custom-node/>
<custom-node-2/>
</node>
Возможно ли это вообще для XmlSerializer?Вся проблема в том, что я собираюсь вручную создать исходный XML-код и пытаюсь сделать его более понятным и дружелюбным.