可以强制将xml中的字符串值强制转换为布尔值吗?
作者:互联网
假设我有这样的xml:
<Server Active="No">
<Url>http://some.url</Url>
</Server>
C#类如下所示:
public class Server
{
[XmlAttribute()]
public string Active { get; set; }
public string Url { get; set; }
}
是否可以将Active属性更改为bool并将XmlSerializer强制转换为bool值“是”“否”?
编辑:Xml已收到,我无法更改.因此,实际上,我只对反序列化感兴趣.
解决方法:
我可能会看看第二个属性:
[XmlIgnore]
public bool Active { get; set; }
[XmlAttribute("Active"), Browsable(false)]
[EditorBrowsable(EditorBrowsableState.Never)]
public string ActiveString {
get { return Active ? "Yes" : "No"; }
set {
switch(value) {
case "Yes": Active = true; break;
case "No": Active = false; break;
default: throw new ArgumentOutOfRangeException();
}
}
}
标签:coercion,xml-serialization,c 来源: https://codeday.me/bug/20191024/1918403.html