我正试图找出如何解决从 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/