You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在.NET依赖注入场景下如何异步处置Azure ServiceBusClient单例?

.NET 7依赖注入中Azure Service Bus单例的异步处置问题

核心问题解答

.NET 7的依赖注入容器(ASP.NET Core、Worker Service所用的默认容器)会自动调用并等待单例服务的IAsyncDisposable.DisposeAsync()方法,在应用正常关闭的阶段完成清理工作,完全符合你提到的“容器负责处置依赖”的官方要求。

补充说明

  • 从.NET 6开始,官方DI容器就已经完善了对IAsyncDisposable的支持,不再只局限于IDisposable。对于注册为单例的ServiceBusClient和ServiceBusSender,容器会在应用终止时触发异步清理流程,自动等待所有异步可处置单例完成资源释放。
  • 不需要手动调用DisposeAsync(),严格遵循官方文档的要求:不要自行处置从容器解析出来的服务,容器会全权负责。
  • 只要你是通过标准方式注册单例(比如services.AddSingleton<ServiceBusClient>(sp => new ServiceBusClient(connectionString)),或者Azure SDK提供的AddServiceBusClient扩展方法),就不需要额外做任何处置相关的代码。

内容的提问来源于stack exchange,提问作者Joerg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 13:18:10