ASP.NET Core 6.0 中使用 Autofac
阿新 • • 發佈:2022-04-16
1. 引用NuGet包
Install-Package Autofac -Version 6.3.0
Install-Package Autofac.Extensions.DependencyInjection -Version 7.2.0
2. Program 中註冊使用
2.1 普通注入
builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory()); builder.Host.ConfigureContainer<ContainerBuilder>(builder => { builder.RegisterType<A>().As<IA>(); // 直接註冊某一個類和介面,左邊的是實現類,右邊的As是介面 });
2.2 反射程式集方式服務註冊
builder.Host.ConfigureContainer<ContainerBuilder>(builder => { var assemblysServices = Assembly.Load("Exercise.Services"); containerBuilder.RegisterAssemblyTypes(assemblysServices) .AsImplementedInterfaces() .InstancePerLifetimeScope(); });
還可以進行選擇性批量注入,注入之後通過 建構函式或者屬性注入的方式使用。
.net core 3.1 使用autofac注入,不同點只在於 Program 中的註冊方式。