在Abp中使用依赖注入

依赖注入是一种设计模式,这里主要讨论如何在 Abp 中使用依赖注入。

注册依赖项

在 Abp 中我们有很多种方法来注册依赖项,大多数情况下通过约定来注册依赖项就足够了。这也是 ASP.NET 中约定大于配置的一种体现。

通过约定注册依赖项

Abp 通过约定注册所有的 Repositories, Domain Services, Application Services, MVC ControllersWeb 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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值