NancyFx:使用StreamResponse()时是否处理了流?

时间:2016-08-09 12:28:48

标签: c# stream nancy

使用StreamResponse()时,流是否在NancyFx中处理?

使用streamWriter写入流,我不能在不关闭我想发送的流的情况下处理它。我看到它的方式,我不能手动处理流,因为我在返回时有效地离开了方法。

此代码有效:

// 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正确处理?

1 个答案:

答案 0 :(得分:1)

根据StreamResponse.csStreamResponse.Dispose()处理Func<Stream>返回的流。

至于在不影响基础流的情况下处置StreamWriter,请参阅this answer