JsonTextWriter在关闭时会关闭底层流吗?我收到了代码分析警告,说明StreamWriter' sw'在这种情况下可能会被处置不止一次。但是在StreamWriter的构造函数中,我为' leaveOpen'指定了true。我相信会保持strema打开的参数,必须使用sw.Close()手动关闭。
StreamWriter sw = new StreamWriter(stream, new UTF8Encoding(false), 1024, true);
JsonTextWriter jtw = new JsonTextWriter(sw);
jtw.Close();
sw.Close();
答案 0 :(得分:4)
布尔属性JsonTextWriter.CloseOutput
控制此行为。默认情况下,此值根据当前source code设置为true
。
您可以通过将样本设置为false来阻止关闭样本中的基础编写器:
jtw.CloseOutput = false;
答案 1 :(得分:0)
根据JsonSoft文档,如果将JsonWriter的CloseOutput属性设置为true,那么它也将关闭StreamWriter。我设置了该属性并删除sw.Close以确保没有歧义