gpt4 book ai didi

.net - 使用FileStreamResult,如何关闭MemoryStream?

转载 作者:行者123 更新时间:2023-12-03 08:48:47 24 4
gpt4 key购买 nike

以下代码有效,但是我想知道创建的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上快速搜索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, 0, _bufferSize);
if (bytesRead == 0) {
// no more data
break;
}

outputStream.Write(buffer, 0, bytesRead);
}
}
}

关于.net - 使用FileStreamResult,如何关闭MemoryStream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10418594/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com