定义XmlRoot并使用变量输入?

时间:2010-06-29 16:58:27

标签: c# xml-serialization

[XmlRoot("ConfigurationRoot")]
public class XmlDBConfiguration
{
    [XmlArray("Customers")]
    [XmlArrayItem("Customer", typeof(Customer))]

    public ArrayList _customers;
    private Dictionary<string, Customer> _customerDictionary;}

是否可以使用来自另一个静态类的变量或任何其他方式定义元素名称(在我的情况下,它是ConfigurationRoot)?我想定义我将要序列化的类(在我的例子中也是Customer)。有可能在那里放一个变量并在创建它的实例时更改它吗?

提前致谢

2 个答案:

答案 0 :(得分:2)

是的,您可以通过使用带有XmlAttributesOverrides对象的XmlSerializer构造函数来实现。明确支持提供您自己的XmlRootAttribute。 MSDN Library topic中已经很好地解释了这一点。

答案 1 :(得分:1)

我认为你不能在类上更改XmlRoot属性的值。但是,您可以在创建XmlSerializer时指定此属性的覆盖 - 只需使用此构造函数:http://msdn.microsoft.com/en-us/library/f1wczcys.aspx