我想在属性上声明XmlAttributeAttribute和XmlElementAttribute,以便xml正确反序列化,无论该属性是定义为xml元素还是xml属性。
e.g。 给定
public class X
{
[XmlElement()]
[XmlAttribute()]
public string Prop
{
get;
set;
}
}
以下任一项正确反序列化:
<X>
<Prop>XXX</Prop>
</X>
<X Prop="XXX"/>
这可能吗?
答案 0 :(得分:4)
您可以引入像这样的转发属性
public class X
{
[XmlElement()]
public string Prop
{
get;
set;
}
[XmlAttribute("Prop")]
public string Prop1
{
get { return Prop; }
set
{
if (!string.IsNullOrEmpty(value))
{
Prop = value;
}
}
}
}