Несколько атрибутов XmlElement для свойства C#

Могу ли я иметь более одного XmlElement для свойства класса? Например:

[XmlElement("name")]
[XmlElement("clientName")]
public string Name { .. }

Мне это нужно для десериализации. Предположим, что элемент Name в XML-файле будет называться "name" или "clientName". Я хочу добиться некоторой гибкости (перечислить возможные имена для элемента xml, которые соответствуют атрибуту Name.

Основная идея заключается в том, что мне нужно импортировать XML-файлы из другой программы, и я должен создать своего рода "шаблоны для импорта".

2 ответа

Решение

Ответ на самом деле да, но только при определенных условиях. Если вам нужно другое имя элемента для разных типов, вы можете сделать это. Что касается не указанного типа, в документации ничего не сказано.

[XmlElement(typeof(int),
 ElementName = "ObjectNumber"),
XmlElement(typeof(string),
 ElementName = "ObjectString")]
public ArrayList ExtraInfo;

Предполагая, что вам нужно импортировать XML с двумя разными именами элементов для одного и того же значения, вы можете сделать это:

  string _Name;

  [XmlElement("name")]
  public string Name {
    get {
      return _Name;
    }
    set {
      _Name = value;
    }
  }

  [XmlElement("clientName")]
  public string ClientName {
    get {
      return _Name;
    }
    set {
      _Name = value;
    }
  }
Другие вопросы по тегам