6

有没有办法在运行时设置对象或类的 xmlroot?

[XmlRoot("data")]
public class MyRoot {
    [XmlElement("bar")]
    public List<RemoteHost> Hosts {get;set;}
}

在这种情况下,我没有修改类 MyRoot 的选项;因此,我想指定在使用 XmlSerializer 将对象序列化为 XML 之前,我希望将根名称称为“数据”。

4

1 回答 1

10

是的!简单地:

var serializer = new XmlSerializer(typeof(MyRoot),
    new XmlRootAttribute("data"));

或更完整地,请参阅XmlAttributeOverrides。但是,对于其中任何一个,您都必须缓存和重用序列化程序实例,否则您将泄漏程序集。

于 2012-10-04T22:30:04.693 回答