布尔类型上的xml序列化错误

pro*_*nis 2 asp.net xml-serialization

我试图找出如何解决从骆驼的情况字符串序列化布尔类型的问题。

我有以下xml

<Root>
  <BoolElement>
     False
  </BoolElement>
</Root>
Run Code Online (Sandbox Code Playgroud)

及以下课程

[XmlRoot("Root")]
public class RootObj{
  [XmlElement("BoolElement")]
  public bool BoolElement{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

这将产生一个错误。

如果我使用相同的类并将“ False”重命名为“ false”,则它将起作用。问题是我无法编辑xml。

有谁知道我该怎么解决?

Dar*_*rov 5

您可以使用后备字段来帮助对此无效XML进行反序列化(我说是无效的,因为根据xsd:boolean模式False是无效值):

[XmlRoot("Root")]
public class RootObj
{
    [XmlElement("BoolElement")]
    public string BackingBoolElement
    {
        set
        {
            BoolElement = bool.Parse(value.ToLower());
        }
        get
        {
            return BoolElement.ToString();
        }
    }

    [XmlIgnore]
    public bool BoolElement { get; set; }
}
Run Code Online (Sandbox Code Playgroud)