ASP.NET Core依赖注入容器中的动态服务注册
介绍
在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依赖注入容器中的动态服务注册相关推荐
- ASP.NET Core依赖注入初识与思考
一.前言 在上一篇中,我们讲述了什么是控制反转(IoC)以及通过哪些方式实现的.这其中,我们明白了,「控制反转(IoC)」 是一种软件设计的模式,指导我们设计出更优良,更具有松耦合的程序,而具体的实现 ...
- ASP.NET Core依赖注入最佳实践,提示技巧
分享翻译一篇Abp框架作者(Halil İbrahim Kalkan)关于ASP.NET Core依赖注入的博文. 在本文中,我将分享我在ASP.NET Core应用程序中使用依赖注入的经验和建议. ...
- ASP.NET Core依赖注入深入讨论
这篇文章我们来深入探讨ASP.NET Core.MVC Core中的依赖注入,我们将示范几乎所有可能的操作把依赖项注入到组件中. 依赖注入是ASP.NET Core的核心,它能让您应用程序中的组件增强 ...
- 如何检查服务已在依赖注入容器中注册
前言 依赖关系注入(DI),是一种在类及其依赖项之间实现控制反转(IoC)的技术.在ASP.NET Core中,依赖关系注入是"一等公民",被大量使用. 但是有时,我们仅仅只需要知 ...
- 深入理解ASP.NET Core依赖注入
概述 ASP.NET Core可以说是处处皆注入,本文从基础角度理解一下原生DI容器,及介绍下怎么使用并且如何替换官方提供的默认依赖注入容器. 什么是依赖注入 百度百科中对于依赖注入的定义:控制反转( ...
- 【ASP.NET Core】ASP.NET Core 依赖注入
一.什么是依赖注入(Denpendency Injection) 这也是个老身常谈的问题,到底依赖注入是什么? 为什么要用它? 初学者特别容易对控制反转IOC(Iversion of Control) ...
- 一文读懂Asp.net core 依赖注入(Dependency injection)
一.什么是依赖注入 首先在Asp.net core中是支持依赖注入软件设计模式,或者说依赖注入是asp.net core的核心: 依赖注入(DI)和控制反转(IOC)基本是一个意思,因为说起来谁都离不 ...
- 全面理解 ASP.NET Core 依赖注入
DI在.NET Core里面被提到了一个非常重要的位置, 这篇文章主要再给大家普及一下关于依赖注入的概念,身边有工作六七年的同事还个东西搞不清楚.另外再介绍一下.NET Core的DI实现以及对实例 ...
- core控制器属性注入的用处_了解ASP.NET Core 依赖注入,看这篇就够了
DI在.NET Core里面被提到了一个非常重要的位置, 这篇文章主要再给大家普及一下关于依赖注入的概念,身边有工作六七年的同事还个东西搞不清楚.另外再介绍一下.NET Core的DI实现以及对实例 ...
最新文章
- c语言中变量有什么作用是什么,C语言里面局部变量和临时变量有什么区别?
- nginx反向代理-多端口映射
- 全球数据进入ZB时代,希捷如何让数据创造深价值?
- Android 显示、隐藏状态栏和导航栏
- P2303 [SDOI2012] Longge 的问题
- Android开发必用工具及其进阶途径
- [实战] 用数人云,部署弹性 ELK 集群就五步 1
- asp.net 下载文件
- 【二分法】LeetCode 35. Search Insert Position
- 2-Linux C语言指针与内存-学习笔记
- NRF24L01 2.4G无线模块浅析(学习笔记)
- ZJOI 2010 贪吃的老鼠 最大流
- C-COT代码运行----Matlab2018a运行matconvnet深度卷积网络
- 解读《道德经》nbsp;五十六章nbsp;知者不言…
- 阿里云服务器docker安装网心云容器魔方
- 触手可及的人工智能,加速改变生产生活
- 老闪创业那些事儿(40)——倒霉的光哥
- 基于CAN总线的汽车诊断协议UDS (网络层 ISO 15765)
- Unity Addressables资源管理系统
- 抖音面试题:遇到连续问题怎么办?
热门文章
- 拦截器和过滤器区别_新手能看懂的(Interceptor)和(Filter)区别与使用!
- vim linux python3,VIM:在python-mode中使用python3解释器
- oracle number对应java什么类型_JVM系列之数据类型
- 小程序获取openid保存缓存吗_小程序获取openid踩坑
- 在计算机网络应用发展过程中 被称为,计算机网络技术与应用第三章考试题
- python列表心得_Python学习心得(第一篇:字符串、列表等)
- APP时间界面设计模板,可临摹学习的好素材
- matlab由直方图分度,MATLAB复习资料
- QT清空文件夹内所有文件
- 使用 SYSENTER 和 SYSEXIT 指令执行对系统过程的快速调用