目标
获取名为“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 解决!
由于这个问题在我对@Frederik Gheysel 的回答的评论中得到了某种程度的回答,所以我想我会把它放在这里,这样它就不会被埋没。
只需将 XmlRoot 属性添加到您的类中,这将更改根节点的输出 xml。
例子:
[XmlRoot("Template")]
public class Item : IXmlSerializable
{
//Item's properties
}
最佳答案
检查XmlRootAttribute类。
关于c# - 序列化 : Change the name of the root node without changing the class name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3620390/