Does File() В asp.net mvc закрывает поток?

Мне интересно, сделаете ли вы что-то вроде

public FileResult result()
{
   Stream stream = new Stream();
   return File(stream,"text/html","bob.html");
}

если File() закроет поток для вас? Поскольку я пытался поместить "поток" в оператор using, но он всегда давал мне ошибку, говоря, что поток был закрыт.

public FileResult result()
{
    using(Stream stream = new Stream())
    {
       return File(stream,"text/html","bob.html");
    }
}

Ответ 1

Если вы используете объект File для отправки результирующего файла для загрузки в виде bob.html, тогда да.

Я считаю, что все стандартные потоки (OutputStream, FileStream, CryptoStream) будут пытаться скрыться при закрытии или удалении.

В рамках MVC существует ряд классов, реализующих базовый класс FileResult.

System.Web.Mvc.FileResult
System.Web.Mvc.FileContentResult
System.Web.Mvc.FilePathResult
System.Web.Mvc.FileStreamResult