.net – 使用FileStreamResult,MemoryStream是如何关闭的?
发布时间:2020-12-15 19:06:48 所属栏目:asp.Net 来源:网络整理
导读:以下代码工作,但我想知道是否正确关闭创建的MemoryStream。应该如何执行或FileStreamResult为我处理它? public FileStreamResult DownloadBudgetedRoleOpportunities( Guid projectGuid,IEnumerableGuid guidRequiredRoles){ var rolebroker = new Project
以下代码工作,但我想知道是否正确关闭创建的MemoryStream。应该如何执行或FileStreamResult为我处理它?
public FileStreamResult DownloadBudgetedRoleOpportunities( Guid projectGuid,IEnumerable<Guid> guidRequiredRoles) { var rolebroker = new ProjectRoleBudgetBroker(); var memstream = rolebroker.CreateBudgetedRoleOpportunies( projectGuid,guidRequiredRoles); var fsr = new FileStreamResult ( memstream,"application/csv" ) { FileDownloadName = "RoleOpportunities.csv" }; // memstream.Close(); throws exception return fsr; } 解决方法
FileStreamResult会为你做。当有疑问总是检查代码,因为代码永远不会说谎,并且由于ASP.NET MVC是开源的,它更容易查看代码。
通过Google for FileStreamResult.cs快速搜索,您可以验证在WriteFile方法中,使用using语句正确处理流。 (无双关意) protected override void WriteFile(HttpResponseBase response) { // grab chunks of data and write to the output stream Stream outputStream = response.OutputStream; using (FileStream) { byte[] buffer = new byte[_bufferSize]; while (true) { int bytesRead = FileStream.Read(buffer,_bufferSize); if (bytesRead == 0) { // no more data break; } outputStream.Write(buffer,bytesRead); } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 如何在ASP.NET MVC中定义表单域前缀
- asp.net-core – 如何在Asp.net Core中检测会话超时?
- asp.net – 从ListView ItemDataBound事件处理程序中的Data
- asp.net-core – ABP框架中的集成Windows身份验证
- Repeater排序的三种实现方式(附在线Demo)
- ASP.NET Web窗体:母版页和CSS文件
- ASP.Net HttpHandler ProcessRequest()触发两次
- asp.net-mvc-3 – 在动作过滤器中获取动作参数的值
- asp.net – If-Modified-由于IE9传递的HTTP头包含长度?
- asp.net-mvc – 禁止使用[授权]操作过滤器的控制器方法的浏
推荐文章
站长推荐
- asp.net-mvc – ASP.NET MVC:获取RouteTable路由
- asp.net-mvc – MVC的理由?
- asp.net-mvc – ASP.NET MVC ActionLink外部区域
- asp.net-mvc – 内联如果在Razor View中
- asp.net-mvc – MVC范例中的模型,域,存储库和服务
- asp.net-mvc-4 – ASP .NET MVC 4包含两个部分视
- 在ASP.NET Core Web API Controller中使用C#7元组
- 身份验证 – 如何为Asp.NET MVC 5创建ClaimsIden
- asp.net-mvc – ASP.NET MVC 3区域 – 无法使用自
- .netcore 日志记录实现
热点阅读