gpt4 book ai didi

c# - FileStreamResult 是否关闭 Stream?

转载 作者:IT王子 更新时间:2023-10-29 04:21:48 28 4
gpt4 key购买 nike

我的问题类似于这个问题: Does File() In asp.net mvc close the stream?

我在 C# MVC 4 中有以下内容。

FileStream fs = new FileStream(pathToFileOnDisk, FileMode.Open);
FileStreamResult fsResult = new FileStreamResult(fs, "Text");
return fsResult;

fs 会被FileStreamResult 自动关闭吗?谢谢!

最佳答案

是的。它在流周围使用 using block ,确保资源将被释放。

这是内部 implementation FileStreamResult WriteFile 方法:

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);
}
}
}

关于c# - FileStreamResult 是否关闭 Stream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26275764/

28 4 0