.net – 使用FileStreamResult,MemoryStream是如何关闭的?
发布时间:2020-05-25 00:33:40 所属栏目:asp.Net 来源:互联网
导读:以下代码工作,但我想知道是否正确关闭创建的MemoryStream。应该如何执行或FileStreamResult为我处理它? public FileStreamResult DownloadBudgetedRoleOpportunities( Guid projectGuid, IEnumerableGuid guidRequiredRoles){ var rol
|
以下代码工作,但我想知道是否正确关闭创建的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 – WebApi:将参数映射到标头值
- asp.net-mvc-3 – 为什么会话是ASP.NET MVC应用程序的灾难?
- asp.net – 使用OptGroup组构建选择列表
- asp.net-mvc – 在请求之间保持/缓存数据 – 常用方法
- asp-classic – 从Classic ASP执行存储过程
- 如何缓存输出的action方法,返回图像到asp.net mvc中的视图?
- asp.net-mvc – ExceptionContext.ExceptionHandled更改为t
- LoginView中的ASP.NET LoginStatus不会触发LoggingOut事件
- asp.net – Sitecore – System.Security.Cryptography.Cry
- asp.net – 评论.aspx
