2017-09-27 26 views
1

閉じたときにJsonTextWriterが基になるストリームを閉じますか?このシナリオでは、StreamWriter 'sw'が複数回処理される可能性があるというコード分析の警告が表示されています。しかし、StreamWriterのコンストラクタでは、私が考えているleaveOpenの引数にtrueを指定しています。これは、ストリームを開いたままにし、sw.Close()を使用して手動で閉じなければならないと考えました。あなたがtrueにJsonWriterのCloseOutputプロパティを設定している場合JsonTextWriterを閉じると基になるStreamWriterを閉じる

StreamWriter sw = new StreamWriter(stream, new UTF8Encoding(false), 1024, true); 
JsonTextWriter jtw = new JsonTextWriter(sw); 
jtw.Close(); 
sw.Close(); 

答えて

3

ブール値のプロパティJsonTextWriter.CloseOutputがこれに対する動作を制御します。これは現在、source codeごとにデフォルトでtrueに設定されています。

あなたはfalseに設定して、試料中の根本的な作家を閉じる防ぐことがあります。

jtw.CloseOutput = false; 
0

JsonSoftのドキュメントによると、それはまたのStreamWriterを閉じます。私はそのプロパティを設定し、sw.Closeを削除して、あいまい性がないようにします。

関連する問題