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

本文关键字:布尔值 有效 false 字符串 | 更新日期: 2023-09-27 17:58:48

我正在读取一个使用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"转换为有效的布尔值与我目前在这里所做的有什么不同吗?如果是,那可能是什么?

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

XmlConvert.ToBoolean只接受小写字符串中的false。你可能把它和Convert.ToBoolean 混淆了

XmlConvert.ToBoolean方法(字符串)

有效字符串为"1"或"true"表示true,"0"或"false"表示false。