ストリーム操作: StreamWriter と BaseStream の関連付けを解除します
StreamWriter
とその Close()
または Dispose()
メソッドを使用する場合、ジレンマがあります。これらのメソッドは、基礎となる BaseStream
も閉じます。 StreamWriter
がタスクを完了した後も外部コンポーネントが BaseStream
にアクセスする必要がある場合、問題が発生します。
この問題を解決するために、.NET Framework 4.5 以降では、StreamWriter
を開いたままにすることを指定できるオーバーロードされた BaseStream
コンストラクターが提供されています。
<code class="language-csharp">StreamWriter(Stream stream, Encoding encoding, bool leaveOpen)</code>
を受け入れます。デフォルトは leaveOpen
です。 false
を leaveOpen
に設定すると、true
が閉じられるか解放されても、StreamWriter
は開いたままになります。 BaseStream
StreamWriter
を閉じずにバッファリングされたデータが解放されます。 BaseStream
Close()
の呼び出しを無視し、他のすべての操作を基礎となる Dispose()
にプロキシするカスタム フロー ラッパーを実装します。 BaseStream
以上がStreamWriter が基礎となる BaseStream を閉じるのを防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。