.net core 使用外部系统的域服务

.net core 使用外部系统的域服务,.net-core,domain-driven-design,clean-architecture,.net Core,Domain Driven Design,Clean Architecture,我正在尝试使用DDD方法实现一个员工管理系统。该系统是使用.Net内核构建的。我为这个系统创建了几个项目(UI、应用程序、域、基础设施)。现在在我的域层中,我有一个雇员实体(即雇员聚合的聚合根)。业务需求是,无论何时创建员工,我都需要进行信用检查,并根据检查结果更新员工实体名为“IsCreditCheckDone”的属性。信用检查服务基本上是一种外部Rest服务。我正在考虑在Domain.Services.Interfaces文件夹中创建一个名为ICreditCheckService的接口。我正

我正在尝试使用DDD方法实现一个员工管理系统。该系统是使用.Net内核构建的。我为这个系统创建了几个项目(UI、应用程序、域、基础设施)。现在在我的域层中,我有一个雇员实体(即雇员聚合的聚合根)。业务需求是,无论何时创建员工,我都需要进行信用检查,并根据检查结果更新员工实体名为“IsCreditCheckDone”的属性。信用检查服务基本上是一种外部Rest服务。我正在考虑在Domain.Services.Interfaces文件夹中创建一个名为ICreditCheckService的接口。我正在考虑在服务文件夹内的基础结构层中实现ICreditCheckService。此外,ICreditCheckService将被注入Employee类,并且依赖关系将映射到UI项目的Startup类中

我的问题是,当域服务使用外部系统时,它是处理域服务的正确方法吗?还是应该采取不同的做法

EMS.域

  • 实体

    • Employee.cs
  • 服务

    • 接口
      • ICreditCheckService.cs(将注入员工实体)
EMS.基础设施

  • 服务
    • CreditCheckService.cs(此服务将对外部Rest API进行http调用)

    • 总的来说,我认为你们的设计很好

      然而,有两点:

      • 从术语上讲,调用外部api的服务不被视为域服务(域服务运行涉及多个实体的逻辑)。它更像是一个存储库
      • 存储库服务不应注入实体,而应注入应用程序(用例)服务。例如,一个应用程序服务调用您的信用检查服务,然后创建一个雇员实体,将布尔结果传递给它的ctor