Um fluxo é descartado ao retornar um arquivo de uma ação? [duplicado
Esta pergunta já tem uma resposta aqui:
FileStreamResult fecha Stream? 1 respostaComo descarto meu fluxo de arquivos ao implementar um download de arquivo no ASP.NET 2 respostas Estou escrevendo uma string para umMemoryStream
Preciso retornar o fluxo à Ação do Controlador para que eu possa enviá-lo como um arquivo para download.
Normalmente, envolvo o Stream em uma instrução using, mas, nesse caso, preciso devolvê-lo. Ainda fica Disposed após devolvê-lo? Ou preciso descartá-lo de alguma forma?
//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;
}
Controlador Ação que retorna o arquivo:
[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?
}