.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 @   段江涛IT  阅读(385)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
页脚HTML代码
点击右上角即可分享
微信分享提示