Цель
Взять класс с именем "Item" и вывести его сериализованный XML как:
<Template><!--some properties --></Template>
Проблема
Корневой узел является производным от имени класса, который реализует IXmlSerializable.
// By the time I get here 'writer' already has a root node
public void WriteXml(XmlWriter writer)
{
writer.WriteStartElement("Template");
// write out the properties
writer.WriteEndElement();
}
Так что я получаю XML, который выглядит как
<Item><Template><!-- some properties --></Template></Item>
Вопрос
Есть ли атрибут, свойство, которое я могу переопределить, или что-нибудь еще, чтобы получить желаемый эффект (кроме изменения имени класса)?
Спасибо!
Разрешение благодаря Фредерику!
Так как на мой вопрос к ответу @Frederik Gheysels ответ на этот вопрос был своего рода, я решил поставить его здесь, чтобы его не похоронили.
Просто добавьте атрибут XmlRoot в ваш класс, и это изменит выходной xml корневого узла.
Пример: * 1 034 *
[XmlRoot("Template")]
public class Item : IXmlSerializable
{
//Item's properties
}