asp.net - bool 类型上的xml序列化错误

标签 asp.net xml-serialization

我正试图找出如何解决从 Camel 的情况字符串序列化 bool(boolean) 类型的问题。

我有以下xml

<Root>
  <BoolElement>
     False
  </BoolElement>
</Root>

及以下 class
[XmlRoot("Root")]
public class RootObj{
  [XmlElement("BoolElement")]
  public bool BoolElement{get;set;}
}

这将产生一个错误。

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

有谁知道我该怎么解决?

最佳答案

您可以使用一个后备字段来帮助对此无效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; }
}

关于asp.net - bool 类型上的xml序列化错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10511835/

相关文章:

c# - 如何创建 "upgradable"加密类

javascript - 如何使用Jquery在用户点击回车键时触发按钮?

asp.net - 如何在 .net 3.5 中托管我的 MVC3 应用程序?

sql - 列 'ID' 被限制为唯一。值(value)已经存在

Javascript 菜单

c# - 在 C# 中,如何反序列化包含元素列表而没有周围列表元素的 XML 文档

javascript - XMLSerializer 跳过元素值

c# - 如何在没有复数父元素的情况下从 xml 反序列化列表?

java - Simple Framework 中的自定义匹配器用于反序列化而不是序列化

c# - 序列化一个 BigInteger