【问题标题】:Can I specify XMLRoot via code instead of attributes?我可以通过代码而不是属性指定 XMLRoot 吗?
【发布时间】:2012-10-05 06:30:04
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# xml-serialization


    【解决方案1】:

    是的!简单地说:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-07
      • 1970-01-01
      相关资源
      最近更新 更多