FileStreamResult是否关闭Stream?
我的问题类似于这个问题: 文件()在asp.net mvc关闭流吗?
我在C#MVC 4中有以下内容。
FileStream fs = new FileStream(pathToFileOnDisk, FileMode.Open); FileStreamResult fsResult = new FileStreamResult(fs, "Text"); return fsResult;
将由FileStreamResult
自动关闭fs
吗? 谢谢!
是。 它使用流周围的using
块,并确保资源将被处置。
以下是FileStreamResult
WriteFile方法的内部实现:
protected override void WriteFile(HttpResponseBase response) { Stream outputStream = response.OutputStream; using (this.FileStream) { byte[] buffer = new byte[0x1000]; while (true) { int count = this.FileStream.Read(buffer, 0, 0x1000); if (count == 0) { return; } outputStream.Write(buffer, 0, count); } } }