.net core使用autofac替换默认IOC容器
.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即可。

浙公网安备 33010602011771号