字符串'false'不是有效的布尔值

时间:2016-07-26 19:45:19

标签: c# xml xml-serialization

我正在读取一个使用XmlWriter写成字符串的值。然后它被XmlReader读取并转换为布尔值。最后,调用相同的XmlWriter方法写出单独的Xml文件。但是当我第二次尝试编写元素时,我得到了一个失败的单元测试:

Result Message: 
Test method threw exception: 
System.FormatException: The string 'False' is not a valid Boolean value.  

我正在用

编写元素
   writer.WriteStartElement("variableNameIsRelative");
   writer.WriteCData(p.VariableNameIsRelative.ToString());
   writer.WriteEndElement();

然后用

阅读
param.VariableNameIsRelative = XmlConvert.ToBoolean(reader.ReadElementContentAsString());

再次使用与之前相同的编写器输出到另一个文件(这是它打破的地方。)

writer.WriteStartElement("variableNameIsRelative");
writer.WriteCData(p.VariableNameIsRelative.ToString());
writer.WriteEndElement();

所以我的问题是......在XmlSerialization中将“false”转换为有效的布尔值与我目前在这里做的事情有什么不同吗?如果是这样,那可能是什么?

1 个答案:

答案 0 :(得分:9)

XmlConvert.ToBoolean仅接受小写字符串中的false。您可能会将其与Convert.ToBoolean

混淆

XmlConvert.ToBoolean Method (String)

  

对于true,有效字符串为“1”或“true”,对于false,有效字符串为“0”或“false”。