C# FileStreamResult是否关闭流?

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

我的问题与这个问题类似:

我在C#MVC4中有以下内容


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