NancyFx: Существуют ли потоки, которые используются при использовании StreamResponse()?

Существуют ли потоки, размещенные в NancyFx при использовании StreamResponse()?

Используя 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
09 авг. '16 в 15:28
источник поделиться
1 ответ

Согласно StreamResponse.cs, StreamResponse.Dispose() поток, возвращаемый Func<Stream>.

Что касается утилизации StreamWriter без влияния на базовый поток, см. Этот ответ.

1
09 авг. '16 в 15:57
источник

Посмотрите другие вопросы по меткам или Задайте вопрос