4

目标

取一个名为“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 Gheysels 答案的评论中得到了回答,所以我想我会把它放在这里,这样它就不会被埋没。

只需向您的类添加一个 XmlRoot 属性,这将更改根节点的输出 xml。

例子:

[XmlRoot("Template")]
public class Item : IXmlSerializable
{
   //Item's properties
}
4

1 回答 1

8

检查XmlRootAttribute类。

于 2010-09-01T17:07:15.277 回答