簡體   English   中英

C#-將關閉JsonTextWriter將關閉基礎StreamWriter

[英]C# - Will closing a JsonTextWriter close the underlying StreamWriter

JsonTextWriter在關閉時是否會關閉基礎流? 我收到一條代碼分析警告,在這種情況下,StreamWriter的“ sw”可能會被丟棄多次。 但是,在StreamWriter的構造函數中,我為'leaveOpen'參數指定true,我相信它將保持打開狀態,必須使用sw.Close()手動將其關閉。

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

布爾屬性JsonTextWriter.CloseOutput控制此行為。 根據當前源代碼 ,默認情況下將其設置為true

您可以通過將其設置為false來防止關閉示例中的基礎編寫器:

jtw.CloseOutput = false;

根據JsonSoft文檔,如果將JsonWriter的CloseOutput屬性設置為true,則它還將關閉StreamWriter。 我將設置該屬性並刪除sw.Close以確保沒有歧義

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM