.net core使用autofac替換預設IOC容器
阿新 • • 發佈:2022-05-08
.net core提供了預設的IOC容器,但是預設的IOC容器比較簡單,如果咱們的需求也比較單一完全能夠勝任,但是如果我們需要使用到一些高階功能,比如:屬性注入、AOP(面向切面)、按條件注入等,預設的IOC容器就顯得捉襟見肘,而這一切用autofac就會顯得格外的簡單。那麼.net core中如何使用autofac替換預設的IOC容器呢?
1、引入nuget包
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="7.0.0" />
2、修改Program類的CreateHostBuilder方法,主要是:UseServiceProviderFactory(new AutofacServiceProviderFactory())
public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) //使用autofac實現依賴注入 .UseServiceProviderFactory(new AutofacServiceProviderFactory()) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); });
3、修改Startup增加ConfigureContainer方法
public void ConfigureContainer(ContainerBuilder builder) { builder.RegisterType<UsersBLL>().As<IUsersBLL>();//注入 }
最後,我們就可以像使用原生的IOC容器一樣,在需要的地方直接引入IUsersBLL即可。