在处理上载文件的ASP.NETMVC操作方法中,我有

[HttpPost]
public async Task<ActionResult> UploadFiles(IEnumerable<IFormFile> files)
...
    foreach (var file in files)
    {
        await using var stream = file.OpenReadStream();
...

正常处理应该意味着每个文件的流都被释放(根据使用情况). 但是,如果在处理所有文件之前退出循环会发生什么?ASP.NET会处理所有其他流吗?

推荐答案

ASP.NET管理IFormFile使用的任何资源的生命周期,而不是您.您唯一需要担心的是处理OpenReadStream()返回的内容,这是由样例代码中的using处理的.如果您的方法引发异常,则运行库将为您清除该异常.

一般来说,如果东西不是一次性的,就不要go 想它.

Csharp相关问答推荐

有没有一种方法可以将模拟实现委托给实际的类,而不必设置每个方法?

C#编译器会优化表达体成员的重新判断吗?

EF Core的GbContent如何 suppress 所有CS 8618(不可为空属性)警告?

我如何才能获得被嘲笑班级的私有成员?

O(N)测试失败

. NET在上一个操作完成之前,在此上下文实例上启动了第二个操作

在发布表单时绑定包含附加(嵌套)列表的对象列表的正确语法是什么

Select Many和默认IfEmpty内部Select Many错误工作

REST API端点中异步后台代码执行的类型

如何在没有额外副本的情况下将存储在IntPtr下的原始图像数据写入WinUI3中的Image控件?

Blazor服务器端的身份验证角色

如何使datagridview的列具有响应性,以便不是所有列都更改其宽度

WeakReference未被垃圾收集

在命名管道上使用GRPC ASP.NET核心时如何配置命名管道权限

Rx.Net窗口内部可观测数据提前完成

有没有更好的方法来在CosmosDB上插入非id?

如何在mediatr命令中访问HttpContext而不安装弃用的nuget包

多个选项卡上的MudForm验证

如何在C#中从MongoDB IPipelineStageDefinition中获取聚合命令的字段/选项?

Autofac -动态实例化:手动传递构造函数