我正在读取一个使用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”转换为有效的布尔值与我目前在这里做的事情有什么不同吗?如果是这样,那可能是什么?
答案 0 :(得分:9)
XmlConvert.ToBoolean
仅接受小写字符串中的false
。您可能会将其与Convert.ToBoolean
XmlConvert.ToBoolean Method (String)
对于true,有效字符串为“1”或“true”,对于false,有效字符串为“0”或“false”。