Располагается ли поток при возврате файла из действия? [Дубликат]

На этот вопрос уже есть ответ:

FileStreamResult закрывает поток? 1 ответ Как избавиться от файлового потока при загрузке файлов в ASP.NET 2 ответа

Я пишу строку вMemoryStream Мне нужно вернуть поток в действие контроллера, чтобы я мог отправить его в виде файла для загрузки.

Обычно я заключаю Stream в оператор using, но в этом случае мне нужно его вернуть. Утилизируется ли он после того, как я его верну? Или мне нужно как-то самому распоряжаться?

//inside CsvOutputFormatter
public Stream GetStream(object genericObject)
{
    var stream = new MemoryStream();
    var writer = new StreamWriter(stream, Encoding.UTF8);
    writer.Write(_stringWriter.ToString());
    writer.Flush();
    stream.Position = 0;
    return stream;
}

Controller Действие, которое возвращает файл:

[HttpGet]
[Route("/Discussion/Export")]
public IActionResult GetDataAsCsv()
{
    var forums = _discussionService.GetForums(_userHelper.UserId);

    var csvFormatter = new CsvOutputFormatter(new CsvFormatterOptions());

    var stream = csvFormatter.GetStream(forums);
    return File(stream, "application/octet-stream", "forums.csv");

    //is the stream Disposed here automatically?
}

Ответы на вопрос(1)

Ваш ответ на вопрос