ASP.NET Core 3.1 WebApi 系列【三】使用Autofac实现依赖注入

.NET Core 3.0 引入了具有强类型容器配置的功能。

它提供了 ConfigureContainer 方法,使用Autofac来注册事物,而不必通过 ServiceCollection 来注册事物。

1.首先我们需要在 Program.cs 中修改服务工厂,内置是 ServiceProviderFactory 的,我们将要指定为: AutofacServiceProviderFactory 。

 

 

 

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

2.Startup.cs 中添加方法 ConfigureContainer ,并添加以下代码。

 

 

 

复制代码
#region 依赖注入
        public void ConfigureContainer(ContainerBuilder builder)
        {
            var basePath = AppContext.BaseDirectory;
            string IServicePath = Path.Combine(basePath, "WebApplication.dll");
            Assembly IService = Assembly.LoadFrom(IServicePath);
            builder.RegisterAssemblyTypes(IService).InstancePerDependency().PropertiesAutowired().AsImplementedInterfaces();
        }
        #endregion
复制代码

注意:其中WebApplication.dll为接口和实现接口类的所在项目的dll文件,与项目名称相同;

 

测试:新增两个接口与实现类,结构如图

 

 

 将接口写入构造函数,即可引用接口中的方法。ctrl+f5运行,调用接口如下:

 

 

 

 

posted @   你去了龙城我留了姑苏  阅读(511)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示