ASP.NET Core中DependencyResolver用法及.NET 6获取HttpConfiguration方法
在ASP.NET Core 6.0中集成Autofac依赖注入
ASP.NET Core 6.0的依赖注入体系和旧版ASP.NET Web API完全不同,不存在HttpConfiguration和AutofacWebApiDependencyResolver这类API,你需要改用Autofac针对ASP.NET Core的官方集成方式,步骤如下:
1. 安装必要的NuGet包
首先安装Autofac的ASP.NET Core扩展包:
Install-Package Autofac.Extensions.DependencyInjection
2. 在Program.cs中配置Autofac
在.NET 6的最小API模型中,通过WebApplicationBuilder的Host来配置Autofac:
var builder = WebApplication.CreateBuilder(args); // 启用Autofac作为服务提供工厂 builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory()); // 配置Autofac容器 builder.Host.ConfigureContainer<ContainerBuilder>(containerBuilder => { // 在这里注册你的服务,比如: // containerBuilder.RegisterType<YourService>().As<IYourService>().InstancePerLifetimeScope(); // 迁移旧代码时,把原来在Autofac容器中注册的逻辑迁移到这里即可 }); // 继续添加其他框架服务,比如Controllers builder.Services.AddControllers(); var app = builder.Build(); // 后续中间件配置 app.MapControllers(); app.Run();
关键说明
- 旧版的
DependencyResolver.SetResolver和config.DependencyResolver在ASP.NET Core中完全不需要,Core的DI系统是全局统一的,Autofac会通过AutofacServiceProviderFactory接管整个服务提供逻辑。 - 所有服务注册统一放在
ConfigureContainer回调中完成,无需单独设置依赖解析器。
内容的提问来源于stack exchange,提问作者Vital Maddali
相关产品推荐
相关产品推荐

