其他分享
首页 > 其他分享> > 可以强制将xml中的字符串值强制转换为布尔值吗?

可以强制将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