【发布时间】:2020-08-05 12:14:01
【问题描述】:
C# .Net-Core 3.1
在我的 C# api 中,我在 FileStreamResult 中返回一个 pdf 文件,效果很好。
通常我将流包装在使用中,但是这段代码失败了
Cannot access a closed Stream.
using (MemoryStream stream = new MemoryStream(byteArray))
{
fileStreamResult = new FileStreamResult(stream, "application/pdf");
}
return (ActionResult)fileStreamResult;
所以我需要这样做:
var stream = new MemoryStream(byteArray);
fileStreamResult = new FileStreamResult(stream, "application/pdf");
return (ActionResult)fileStreamResult;
我假设流需要保持打开状态,我应该担心内存泄漏还是 IIS 会关闭流?有更好的选择吗?
【问题讨论】:
-
在内部
FileStreamResult实现了一个using块。所以你不必担心。
标签: c# .net-core using memorystream filestreamresult