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

本文关键字:是否 处理 使用 StreamResponse NancyFx | 更新日期: 2023-09-27 18:01:33

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

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

根据StreamResponse.cs, StreamResponse.Dispose()处理Func<Stream>返回的流,Nancy处理NancyContext末尾的Response

至于在不影响底层流的情况下处理StreamWriter,请参见此回答