zl程序教程

您现在的位置是:首页 >  其他

当前栏目

在Abp中使用依赖注入

2023-04-18 15:40:48 时间

依赖注入是一种设计模式,这里主要讨论如何在 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