C# で文字列から MemoryStream を作成する
単体テストでは、多くの場合、テキスト ファイルからの入力ストリームをシミュレートする必要があります。 この例では、文字列から GenerateStreamFromString
を作成するシンプルで効果的なメソッド MemoryStream
を示します。
GenerateStreamFromString
実装
次の関数は、文字列を MemoryStream
に効率的に変換します。
<code class="language-csharp">public static Stream GenerateStreamFromString(string s) { var stream = new MemoryStream(); var writer = new StreamWriter(stream); writer.Write(s); writer.Flush(); stream.Position = 0; return stream; }</code>
使用例:
<code class="language-csharp">using (var stream = GenerateStreamFromString("a,b \n c,d")) { // Process the stream here }</code>
StreamWriter の破棄の処理
using
ステートメントは StreamWriter
を自動的に破棄しますが、これにより MemoryStream
も閉じられます。 MemoryStream
を返す必要があるため、StreamWriter
を明示的に破棄することは避けます。 StreamWriter
の Dispose
メソッドは基になるストリームのみを閉じます。これは、このシナリオで望ましい動作です。
このアプローチは、.NET 4.5 以降で導入された StreamWriter
オーバーロードに依存する代替方法とは異なり、すべての .NET バージョンで機能します。 これらのオーバーロードにより、基礎となるストリームを破棄後に開いたままにすることができますが、私たちのメソッドはより広範な互換性を維持します。
ストリームの破棄管理の詳細については、ベース ストリームを閉じずに StreamWriter
を閉じる手法について説明しているリソースを参照してください。
以上がC# で文字列から MemoryStream を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。