NancyFx:使用 StreamResponse() 时是否处理流?
NancyFx: Are streams disposed when using StreamResponse()?
使用 StreamResponse() 时,流是否在 NancyFx 中处理?
使用 streamWriter 写入流,我无法在不关闭要发送的流的情况下处理它。在我看来,我也无法手动处理流,因为我有效地将方法留在 return.
此代码有效:
// Open a stream and write to it with streamReader
Stream memStream = new MemoryStream();
StreamWriter memWriter = new StreamWriter(memStream, Encoding.UTF8);
memWriter.Write(someStringText);
memWriter.Flush();
memStream.Position = 0;
// Add stream to the respose which should get downloaded
var response = new StreamResponse(() => memStream, MimeTypes.GetMimeType(contentType));
return response.AsAttachment(someFileName);
我是否需要担心流会一直持续到垃圾收集器出现,或者它是否被 StreamResponse 正确处理?
根据 StreamResponse.cs
,StreamResponse.Dispose()
处理 Func<Stream>
返回的流,Nancy 处理 [=14= 末尾的 Response
].
至于在不影响底层流的情况下处理 StreamWriter
,请参阅 this answer。
使用 StreamResponse() 时,流是否在 NancyFx 中处理?
使用 streamWriter 写入流,我无法在不关闭要发送的流的情况下处理它。在我看来,我也无法手动处理流,因为我有效地将方法留在 return.
此代码有效:
// Open a stream and write to it with streamReader
Stream memStream = new MemoryStream();
StreamWriter memWriter = new StreamWriter(memStream, Encoding.UTF8);
memWriter.Write(someStringText);
memWriter.Flush();
memStream.Position = 0;
// Add stream to the respose which should get downloaded
var response = new StreamResponse(() => memStream, MimeTypes.GetMimeType(contentType));
return response.AsAttachment(someFileName);
我是否需要担心流会一直持续到垃圾收集器出现,或者它是否被 StreamResponse 正确处理?
根据 StreamResponse.cs
,StreamResponse.Dispose()
处理 Func<Stream>
返回的流,Nancy 处理 [=14= 末尾的 Response
].
至于在不影响底层流的情况下处理 StreamWriter
,请参阅 this answer。