.net core使用autofac替换默认IOC容器


.net core提供了默认的IOC容器,但是默认的IOC容器比较简单,如果咱们的需求也比较单一完全能够胜任,但是如果我们需要使用到一些高级功能,比如:属性注入、AOP(面向切面)、按条件注入等,默认的IOC容器就显得捉襟见肘,而这一切用autofac就会显得格外的简单。那么.net core中如何使用autofac替换默认的IOC容器呢?

1、引入nuget包

"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();
        });

3、修改Startup增加ConfigureContainer方法

public void ConfigureContainer(ContainerBuilder builder)
{
    builder.RegisterType().As();//注入
}

最后,我们就可以像使用原生的IOC容器一样,在需要的地方直接引入IUsersBLL即可。