在Abp中使用依赖注入
依赖注入是一种设计模式,这里主要讨论如何在 Abp 中使用依赖注入。
注册依赖项
在 Abp 中我们有很多种方法来注册依赖项,大多数情况下通过约定来注册依赖项就足够了。这也是 ASP.NET 中约定大于配置的一种体现。
通过约定注册依赖项
Abp
通过约定注册所有的 Repositories, Domain Services, Application Services, MVC Controllers
和 Web API Controllers
,例如:
public interface IPersonAppService : IApplicationService { //... } public class PersonAppService : IPersonAppService { //... }
Abp
自动注册这个服务,是因为 IPersonAppService
继承了 IApplicationService
接口。 IApplicationService
是一个空的接口,继承了 IApplicationService
的接口会被 Abp 注册, 这是一种约定。 IPersonAppService
会被注册成为 transient 的,每次使用都会创建新实例。在将 IPersonAppService
作为依赖项进行注入一个类的时候, IPersonAppService
的实现类 PersonAppService
则会被注入到那个类的构造函数中(采用构造函数注入时)。
利用约定来注册依赖项,命名约定很重要。例如我们可以将 IPersonAppService
的实现类 PersonAppService
的名字改成 MyPersonAppService
或其他包含 PersonAppService
后缀的名字,只有他们的后缀相同, Abp
才会将这个类注册成为 IPersonAppService
接口的实现类。如果这个实现类的名称不包含接口的后缀,例如 PeopleService
,那么Abp就不会将 PeopleService
注册成为 IPersonAppService
的实现类,而是将 PeopleService
注册成为自注册的类(可以理解为 PeopleService
是他自己的实现类)。
参考
ASP.NET Boilerplate Dependency Injection
转 https://blog.csdn.net/WuLex/article/details/120157316
相关文章
- System|Concurrency|分布式事务
- 巨量星图sign
- TAOCP|基本算法|垃圾回收
- System|分布式|BT&区块链
- TOCS|Concurrency|Eraser
- 快手滑块验证码分析
- 软件成本评估中NESMA功能点方法与IFPUG功能点方法有什么区别?——软件造价浅析
- 酷狗app signature
- System|隔离|Enclave&TEE&Attack
- 一种基于浏览记录的反反爬虫方法
- Linux操作系统创建新用户及用户权限
- 在 Linux 上为特定的用户或用户组启用或禁用 SSH
- 在Linux中如何禁止用户登录
- 使用 lshw 查看 Linux 设备信息的命令方法
- 使用 at 命令在 Linux 上安排任务
- 在 Linux 上查找和删除损坏的符号链接
- 找到并杀掉 Linux 系统中的僵尸进程的命令方法
- 使用 smem 命令获取内存使用统计信息的方法
- 8 个有效地用于管理进程的 Linux 操作命令
- 查看 Linux 系统中进程和用户的内存使用情况