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

posted @ 2022-05-08 19:33  段江涛IT  阅读(414)  评论(0)    收藏  举报
页脚HTML代码