gpt4 book ai didi

c# - 从操作返回文件时,流是否会被处置?

转载 作者:可可西里 更新时间:2023-11-01 08:09:02 24 4
gpt4 key购买 nike

<分区>

我正在向 MemoryStream 写入一个字符串,我需要将该流返回给 Controller 操作,以便我可以将其作为文件发送以供下载。

通常,我将 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 Action :

[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?
}

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com