Domain Services 是领域层的。在core 中就有关于Domain Services的东西。
在core中有好多manager 结束的类,比如UserManager,
public class UserManager : AbpUserManager<Role, User>
{//....................................}。
IDomainService最终会实现IDomainService这个接口,这个接口虽然啥也没有,只是说明这个是领域服务。这样他就相当于配置了依赖注入。
用法:在 下面的这个控制器中,注入了Usermanager。下面就直接调用了FindAllAsync方法,这就是UI上层调用领域。
public class AccountController : SimpleTaskAppControllerBase
{
private readonly UserManager _userManager;
//
}
[UnitOfWork]
protected virtual async Task<List<Tenant>> FindPossibleTenantsOfUserAsync(UserLoginInfo login)
{
List<User> allUsers;
using (_unitOfWorkManager.Current.DisableFilter(AbpDataFilters.MayHaveTenant))
{
allUsers = await _userManager.FindAllAsync(login);
}
return allUsers
.Where(u => u.TenantId != null)
.Select(u => AsyncHelper.RunSync(() => _tenantManager.FindByIdAsync(u.TenantId.Value)))
.ToList();
}
Application项目有Application Service。实现了IApplicationService。他实现了一个空的接口ITransientDependency,这和IDomainService一样。
ITestTbAppService 为例,在TestTbsController中,注入了ITestTbAppService,这个是UI调用Application。