Несколько атрибутов 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;
}
}