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

the string 'false' is not a valid boolean value

我正在读取使用 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();

所以我的问题是..在Xml序列化中将"false"转换为有效的布尔值与我目前在这里所做的有什么不同吗?如果是这样,那可能是什么?

XmlConvert.ToBoolean 只接受 false 小写字符串。您可能将它与 Convert.ToBoolean

混淆了

XmlConvert.ToBoolean Method (String)

Valid strings are "1" or "true" for true and "0" or "false" for false.