C# FileStreamResult是否关闭流?
我的问题与这个问题类似: 我在C#MVC4中有以下内容C# FileStreamResult是否关闭流?,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我的问题与这个问题类似: 我在C#MVC4中有以下内容 FileStreamResult是否会自动关闭fs?谢谢 是的。它在流周围使用using块,确保资源将被释放 以下是FileStreamResultWriteFile方法的内部代码: protected override void WriteFile(HttpResponseBase response) { // grab chunks of data and write to the output stream Stre
FileStreamResult
是否会自动关闭fs
?谢谢 是的。它在流周围使用using
块,确保资源将被释放
以下是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);
}
}
}
谢谢只是好奇,你在哪里找到的?Andrei链接到MVC3的代码;你的看起来像另一个版本。这是MVC5的最新版本。我通过反编译器获得了代码,但您可以在codeplex上找到实际的代码,它还包含注释;)在MVC6(vNext)中,流现在已移动。
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);
}
}
}