有没有办法在运行时设置对象或类的xmlroot?
[XmlRoot("data")]
public class MyRoot {
[XmlElement("bar")]
public List<RemoteHost> Hosts {get;set;}
}
在这种情况下,我无法修改MyRoot类;所以,我想指定在使用XmlSerializer将对象序列化为XML之前,我希望将根名称称为“数据”。
答案 0 :(得分:10)
是的!简单地:
var serializer = new XmlSerializer(typeof(MyRoot),
new XmlRootAttribute("data"));
或者更完整,请参阅XmlAttributeOverrides
。但是,对于其中任何一个,您必须缓存并重用序列化程序实例,否则您将泄漏程序集。