2016-07-26 28 views
3

XmlWriterを使用して文字列として書き込まれている値を読み込んでいます。次に、XmlReaderによって読み取られ、ブール値に変換されます。最後に、別のXmlファイルに書き出すために同じXmlWriterメソッドが呼び出されます。文字列 'false'は有効なブール値ではありません

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

私は

param.VariableNameIsRelative = XmlConvert.ToBoolean(reader.ReadElementContentAsString()); 
で読み、その後

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

を持つ要素を書いています:しかし、私は要素に私が言って失敗したユニットテストを取得しています二度目の書き込みしようとすると、

と同じライターを使用して、別のファイルに出力するだけです(これが壊れた場所です)。

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

私の質問は..私はここで何をしていますか?XmlSerializationの有効なブール値に "false"を変換する必要がありますか?もしそうなら、それは何でしょうか?

+0

「文字列false」?あなたが '<![CDATA [false]]>を構築したように聞こえます。それは文字通り 'f'、' a'、 'l'などの文字列です。 –

答えて

5

XmlConvert.ToBooleanのみ小文字の文字列でfalseを受け入れます。おそらくConvert.ToBoolean

XmlConvert.ToBoolean Method (String)

有効な文字列で "1" を、それをしている混乱や誤ったため、真のための "真" と "0" または "false" されています。

+0

ああ、良いキャッチです。ありがとうございました!私はスタックオーバーフローが私を可能にするとき答えとしてマークします。 – Tim

関連する問題