1. 程式人生 > 其它 >.net core使用autofac替換預設IOC容器

.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即可。