目标
取一个名为“item”的类,并将其序列化XML输出为:
<Template><!--some properties --></Template>
问题
根节点是从实现IXML可序列化的类名派生的。
// 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答案的评论中回答了这个问题,所以我想我应该把它放在这里,这样它就不会被埋起来。
只需向类中添加一个xml root属性,这将更改根节点的输出xml。
例子:
[XmlRoot("Template")]
public class Item : IXmlSerializable
{
//Item's properties
}