Определение XmlRoot и typeof с переменной? - PullRequest
2 голосов
/ 29 июня 2010
[XmlRoot("ConfigurationRoot")]
public class XmlDBConfiguration
{
    [XmlArray("Customers")]
    [XmlArrayItem("Customer", typeof(Customer))]

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

Можно ли определить имя элемента (в моем случае это ConfigurationRoot) с помощью переменной из другого статического класса или любым другим способом? Я хочу определить свой класс, который будет сериализован (в моем случае это также Клиент). Можно ли поместить туда переменную и изменить ее, когда я создаю ее экземпляр?

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 29 июня 2010

Да, вы можете сделать это с помощью конструктора XmlSerializer, который принимает объект XmlAttributesOverrides. Предоставление собственного XmlRootAttribute явно поддерживается. Все это хорошо объяснено в теме MSDN Library .

1 голос
/ 29 июня 2010

Не думаю, что вы можете изменить значение атрибута XmlRoot в вашем классе. Однако вы можете указать переопределение этого атрибута при создании XmlSerializer - просто используйте этот конструктор: http://msdn.microsoft.com/en-us/library/f1wczcys.aspx

...