Kubi
Kubi

Reputation: 2179

Defining XmlRoot and typeof it with a variable?

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

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

Is it possible to define the Element Name (in my case it is ConfigurationRoot) with a variable from another static class or any other way? I want to define my class that is going to be serialized (in my case it is Customer) as well. Is it possible to put a variable there and change it when I create an instance of that ?

Thanks in advance

Upvotes: 2

Views: 788

Answers (2)

Grzenio
Grzenio

Reputation: 36689

I don't think you can change the value of the XmlRoot attribute on your class. You can however specify an override of this attribute when you create XmlSerializer - just use this constructor: http://msdn.microsoft.com/en-us/library/f1wczcys.aspx

Upvotes: 1

Hans Passant
Hans Passant

Reputation: 942438

Yes, you can do that by using the XmlSerializer constructor that takes a XmlAttributesOverrides object. Providing your own XmlRootAttribute is explicitly supported. It is all well explained in the MSDN Library topic.

Upvotes: 2

Related Questions