kpg*_*kpg 2 c# memorystream using filestreamresult .net-core
C# .Net-Core 3.1
在我的 C# api 中,我在 FileStreamResult 中返回一个 pdf 文件,效果很好。
一般来说,我将流包装在 using 中,但是此代码失败并显示
Cannot access a closed Stream.
using (MemoryStream stream = new MemoryStream(byteArray))
{
fileStreamResult = new FileStreamResult(stream, "application/pdf");
}
return (ActionResult)fileStreamResult;
Run Code Online (Sandbox Code Playgroud)
所以我需要这样做:
var stream = new MemoryStream(byteArray);
fileStreamResult = new FileStreamResult(stream, "application/pdf");
return (ActionResult)fileStreamResult;
Run Code Online (Sandbox Code Playgroud)
我假设流需要保持打开状态,我应该担心内存泄漏还是 IIS 会关闭流吗?有更好的选择吗?
小智 5
using 语句关闭并从 using 语句中设置的内存中卸载变量,这就是您在尝试访问关闭的内存流时收到错误的原因。如果您只想在最后返回结果,则不需要使用 using 语句。
using 语句对于从内存中删除数据很有用,但您始终可以使用 .dispose() 自行处理数据
| 归档时间: |
|
| 查看次数: |
2983 次 |
| 最近记录: |