#c# #attributes #xml-serialization
#c# #атрибуты #xml-сериализация
Вопрос:
Я хотел бы объявить как XmlAttributeAttribute, так и XmlElementAttribute для свойства, чтобы десериализация xml выполнялась правильно независимо от того, определено ли свойство как элемент xml или как атрибут xml.
например, учитывая
public class X
{
[XmlElement()]
[XmlAttribute()]
public string Prop
{
get;
set;
}
}
любой из следующих десериализуется правильно:
<X>
<Prop>XXX</Prop>
</X>
<X Prop="XXX"/>
Возможно ли это?
Комментарии:
1.
<Prop="XXX"/>
недопустимо.. это должно быть<SomeElement Prop="XXX"/>
Ответ №1:
Вы можете ввести свойство пересылки следующим образом
public class X
{
[XmlElement()]
public string Prop
{
get;
set;
}
[XmlAttribute("Prop")]
public string Prop1
{
get { return Prop; }
set
{
if (!string.IsNullOrEmpty(value))
{
Prop = value;
}
}
}
}