介绍

在ASP.NET Core中,每当我们将服务作为依赖项注入时,都必须将此服务注册到ASP.NET Core依赖项注入容器。但是,一个接一个地注册服务不仅繁琐且耗时,而且容易出错。因此,在这里,我们将讨论如何动态地一次注册所有服务。

让我们开始吧!

为了动态注册所有服务,我们将使用AspNetCore.ServiceRegistration.Dynamic 库。这是一个很小但非常有用的库,使您可以在不公开服务实现的情况下立即将所有服务注册到ASP.NET Core依赖注入容器中。

现在,首先将最新版本的AspNetCore.ServiceRegistration.Dynamic nuget软件包安装到您的项目中,如下所示:

Install-Package AspNetCore.ServiceRegistration.Dynamic

现在,让您的服务继承任何ITransientService,IScoperService和ISingletonService标记接口,如下所示:

// Inherit `IScopedService` interface if you want to register `IEmployeeService`
// as scoped service.
public class IEmployeeService : IScopedService
{Task CreateEmployeeAsync(Employee employee);
}internal class EmployeeService : IEmployeeService
{public async Task CreateEmployeeAsync(Employee employee){// Implementation here};
}

现在在您ConfigureServices的Startup类方法中:

public void ConfigureServices(IServiceCollection services)
{services.RegisterAllTypes<IScopedService>();    // This will register all the // Scoped services of your application.services.RegisterAllTypes<ITransientService>(); // This will register all the // Transient services of your application.services.RegisterAllTypes<ISingletonService>(); // This will register all the // Singleton services of your application.services.AddControllersWithViews();
}

在AspNetCore.ServiceRegistration.Dynamic.Extensions名称空间中RegisterAllTypes<T>是可用的。

结论

仅此而已!任务完成!像上面一样简单,可以一次将所有服务动态注册到ASP.NET Core Dependency Injection容器中。如果有任何问题,可以将其提交到该库的Github存储库。您会尽快得到帮助。

ASP.NET Core依赖注入容器中的动态服务注册相关推荐

  1. ASP.NET Core依赖注入初识与思考

    一.前言 在上一篇中,我们讲述了什么是控制反转(IoC)以及通过哪些方式实现的.这其中,我们明白了,「控制反转(IoC)」 是一种软件设计的模式,指导我们设计出更优良,更具有松耦合的程序,而具体的实现 ...

  2. ASP.NET Core依赖注入最佳实践,提示技巧

    分享翻译一篇Abp框架作者(Halil İbrahim Kalkan)关于ASP.NET Core依赖注入的博文. 在本文中,我将分享我在ASP.NET Core应用程序中使用依赖注入的经验和建议. ...

  3. ASP.NET Core依赖注入深入讨论

    这篇文章我们来深入探讨ASP.NET Core.MVC Core中的依赖注入,我们将示范几乎所有可能的操作把依赖项注入到组件中. 依赖注入是ASP.NET Core的核心,它能让您应用程序中的组件增强 ...

  4. 如何检查服务已在依赖注入容器中注册

    前言 依赖关系注入(DI),是一种在类及其依赖项之间实现控制反转(IoC)的技术.在ASP.NET Core中,依赖关系注入是"一等公民",被大量使用. 但是有时,我们仅仅只需要知 ...

  5. 深入理解ASP.NET Core依赖注入

    概述 ASP.NET Core可以说是处处皆注入,本文从基础角度理解一下原生DI容器,及介绍下怎么使用并且如何替换官方提供的默认依赖注入容器. 什么是依赖注入 百度百科中对于依赖注入的定义:控制反转( ...

  6. 【ASP.NET Core】ASP.NET Core 依赖注入

    一.什么是依赖注入(Denpendency Injection) 这也是个老身常谈的问题,到底依赖注入是什么? 为什么要用它? 初学者特别容易对控制反转IOC(Iversion of Control) ...

  7. 一文读懂Asp.net core 依赖注入(Dependency injection)

    一.什么是依赖注入 首先在Asp.net core中是支持依赖注入软件设计模式,或者说依赖注入是asp.net core的核心: 依赖注入(DI)和控制反转(IOC)基本是一个意思,因为说起来谁都离不 ...

  8. 全面理解 ASP.NET Core 依赖注入

    DI在.NET Core里面被提到了一个非常重要的位置, 这篇文章主要再给大家普及一下关于依赖注入的概念,身边有工作六七年的同事还个东西搞不清楚.另外再介绍一下.NET  Core的DI实现以及对实例 ...

  9. core控制器属性注入的用处_了解ASP.NET Core 依赖注入,看这篇就够了

    DI在.NET Core里面被提到了一个非常重要的位置, 这篇文章主要再给大家普及一下关于依赖注入的概念,身边有工作六七年的同事还个东西搞不清楚.另外再介绍一下.NET  Core的DI实现以及对实例 ...

最新文章

  1. c语言中变量有什么作用是什么,C语言里面局部变量和临时变量有什么区别?
  2. nginx反向代理-多端口映射
  3. 全球数据进入ZB时代,希捷如何让数据创造深价值?
  4. Android 显示、隐藏状态栏和导航栏
  5. P2303 [SDOI2012] Longge 的问题
  6. Android开发必用工具及其进阶途径
  7. [实战] 用数人云,部署弹性 ELK 集群就五步 1
  8. asp.net 下载文件
  9. 【二分法】LeetCode 35. Search Insert Position
  10. 2-Linux C语言指针与内存-学习笔记
  11. NRF24L01 2.4G无线模块浅析(学习笔记)
  12. ZJOI 2010 贪吃的老鼠 最大流
  13. C-COT代码运行----Matlab2018a运行matconvnet深度卷积网络
  14. 解读《道德经》nbsp;五十六章nbsp;知者不言…
  15. 阿里云服务器docker安装网心云容器魔方
  16. 触手可及的人工智能,加速改变生产生活
  17. 老闪创业那些事儿(40)——倒霉的光哥
  18. 基于CAN总线的汽车诊断协议UDS (网络层 ISO 15765)
  19. Unity Addressables资源管理系统
  20. 抖音面试题:遇到连续问题怎么办?

热门文章

  1. 拦截器和过滤器区别_新手能看懂的(Interceptor)和(Filter)区别与使用!
  2. vim linux python3,VIM:在python-mode中使用python3解释器
  3. oracle number对应java什么类型_JVM系列之数据类型
  4. 小程序获取openid保存缓存吗_小程序获取openid踩坑
  5. 在计算机网络应用发展过程中 被称为,计算机网络技术与应用第三章考试题
  6. python列表心得_Python学习心得(第一篇:字符串、列表等)
  7. APP时间界面设计模板,可临摹学习的好素材
  8. matlab由直方图分度,MATLAB复习资料
  9. QT清空文件夹内所有文件
  10. 使用 SYSENTER 和 SYSEXIT 指令执行对系统过程的快速调用