C#。Net Core 3.1
在我的C#api中,我在FileStreamResult中返回一个pdf文件,效果很好。
通常,我使用包装流,但是此代码失败CCD_ 1。
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关闭流?有更好的选择吗?
Using语句关闭并从Using语句中的内存集卸载变量,这就是为什么您在尝试访问关闭的内存流时出错的原因。如果只想在最后返回结果,则不需要使用using语句。
使用语句对于从内存中删除数据很有用,但您可以使用.dispose((自行处理数据
为什么使用块将return (ActionResult)fileStreamResult;
保持在外部?