在 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 版本,與依賴 .NET 4.5 及更高版本中引入的 StreamWriter
重載的替代方案不同。 這些重載允許在處理後保持底層流打開,但我們的方法保持更廣泛的兼容性。
有關管理流處置的更多詳細信息,請參閱討論在不關閉基礎流的情況下關閉 StreamWriter
的技術的資源。
以上是如何在 C# 中從字串建立 MemoryStream?的詳細內容。更多資訊請關注PHP中文網其他相關文章!