欢迎光临
我的个人博客网站

ASP.NET Core必备知识之Autofac


使用Autofac替换掉微软的DI

本文的项目为ASP.NET Core3.1,传统三层架构 在这就不过多介绍Autofac,直接上代码

Autofac官网:https://autofac.org/

ASP.NET Core必备知识之Autofac

Program.cs的 IHostBuilder 方法内加上 .UseServiceProviderFactory(new AutofacServiceProviderFactory())(如下图)

ASP.NET Core必备知识之Autofac

    public static IHostBuilder CreateHostBuilder(string[] args) =>         Host.CreateDefaultBuilder(args)              .UseServiceProviderFactory(new AutofacServiceProviderFactory())//启用autofac容器             .ConfigureWebHostDefaults(webBuilder =>             {               webBuilder.UseStartup<Startup>();             });   } 

在Startup.cs内新增 ConfigureContainer 方法
属性介绍
RegisterAssemblyTypes:寄存器程序集类型
AsImplementedInterfaces:实现的接口
InstancePerDependency:实例依赖关系
PropertiesAutowired:属性自动连接
ASP.NET Core必备知识之Autofac

        /// <summary>         /// 配置Autofac容器替换微软的DI         /// </summary>         /// <param name="builder"></param>         public void ConfigureContainer(ContainerBuilder builder)         {             var basePath = AppContext.BaseDirectory;             //DALService所在程序集命名空间             string DALPath = Path.Combine(basePath, "GraduationProject.DAL.dll");             Assembly DAL = Assembly.LoadFrom(DALPath);             //BLLService所在程序集命名空间             string BLLPath = Path.Combine(basePath, "GraduationProject.BLL.dll");             Assembly BLL = Assembly.LoadFrom(BLLPath);              builder.RegisterAssemblyTypes(DAL).InstancePerDependency().PropertiesAutowired();             builder.RegisterAssemblyTypes(BLL).AsImplementedInterfaces().InstancePerDependency().PropertiesAutowired();         } 
赞(0) 打赏
未经允许不得转载:张拓的天空 » ASP.NET Core必备知识之Autofac
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

专业的IT技术经验分享 更专业 更方便

联系我们本站主机

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏