У меня есть класс, из которого мне нужно сделать некоторый пользовательский вывод XML, поэтому я реализую интерфейс IXmlSerializable. Однако некоторые поля, которые я хочу вывести с сериализацией по умолчанию, за исключением того, что я хочу изменить имена тегов xml. Когда я вызываю serializer.Serialize, я получаю имена тегов по умолчанию в XML. Можно ли как-то их изменить?
Вот мой код:
public class myClass: IXmlSerializable
{
//Some fields here that I do the custom serializing on
...
// These fields I want the default serialization on except for tag names
public string[] BatchId { get; set; }
...
... ReadXml and GetSchema methods are here ...
public void WriteXml(XmlWriter writer)
{
XmlSerializer serializer = new XmlSerializer(typeof(string[]));
serializer.Serialize(writer, BatchId);
... same for the other fields ...
// This method does my custom xml stuff
writeCustomXml(writer);
}
// My custom xml method is here and works fine
...
}
Вот мой вывод Xml:
<MyClass>
<ArrayOfString>
<string>2643-15-17</string>
<string>2642-15-17</string>
...
</ArrayOfString>
... My custom Xml that is correct ..
</MyClass>
Что я хочу получить в итоге:
<MyClass>
<BatchId>
<id>2643-15-17</id>
<id>2642-15-17</id>
...
</BatchId>
... My custom Xml that is correct ..
</MyClass>