当控制器中的方法返回文件流或文件或filecontentresult对象时,处理资源的正确方法是什么?
对于做以下事情的前者:
using CrystalDecisions.CrystalReports.Engine;
public ActionResult Report()
{
ReportClass rptH = new ReportClass();
rptH.FileName = Server.MapPath("[reportName].rpt");
rptH.Load();
rptH.SetDataSource([datatable]);
Stream stream = rptH.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
return File(stream, "application/pdf");
}
TIA
答案 0 :(得分:6)
在结果执行期间调用WriteFile时,FileStreamResult(创建的内容)将流包装在using语句中。这将关闭并处理流。根据创建的流的类型,它实际上可能导致错误,以关闭或包装控制器操作中的using语句中的用法。