Ожидаемый вывод XML:
<add>
<doc>
<field name="id">1</field>
<field name="Myname">MyName1</field1>
</doc>
<doc>
<field name="id">2</field>
<field name="Myname">MyName2</field>
</doc>
<doc>
<field name="id">3</field>
<field name="Myname">MyName3</field>
</doc>
</add>
Чтобы получить вышеуказанный документ XML, я разработал следующий класс
public class doc
{
[XmlElement("field")]
public ID Id
{
get;
set;
}
[XmlElement("field2")]
public Name Myname
{
get;
set;
}
}
Имя класса будет
public class Name
{
[XmlText]
public string Namevalue
{
get;
set;
}
[XmlAttribute("name")]
public string Myname
{
get;
set;
}
}
Код XmlSerializer:
XmlSerializer serializer = new XmlSerializer(typeof(List<doc>), new XmlRootAttribute("add"));
Это дает мне следующий вывод
<add>
<doc>
<field name="id">1</field>
<field2 name="Myname">MyName1</field2>
</doc>
<doc>
<field name="id">2</field>
<field2 name="Myname">MyName2</field2>
</doc>
<doc>
<field name="id">3</field>
<field2 name="Myname">MyName3</field2>
</doc>
</add>
Здесь поле 2 должно быть field Я знаю, что мне нужно изменить field2 как field в doc class, но это приведет к ошибке.
Как мне спроектировать мой класс для получения ожидаемого результата?
Редактировать: Класс ID также будет выглядеть как класс Name со своими собственными атрибутами