【问题标题】:the string 'false' is not a valid boolean value字符串 'false' 不是有效的布尔值
【发布时间】:2016-07-26 19:45:19
【问题描述】:

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

【问题讨论】:

  • “字符串为假”?听起来你建造了<variableNameIsRelative><![CDATA[false]]></variableNameIsRelative>。这实际上是一个带有字母fal 等的字符串......

标签: c# xml xml-serialization


【解决方案1】:

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

XmlConvert.ToBoolean Method (String)

有效字符串为“1”或“true”表示真,“0”或“假”表示假。

【讨论】:

  • 啊,不错。谢谢!当 Stack Overflow 允许我时,我将标记为答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-04
  • 2011-12-28
  • 2011-04-27
  • 1970-01-01
  • 2018-03-10
  • 1970-01-01
相关资源
最近更新 更多