2

我正在开发一个遵循 Onion 架构的 ASP.NET MVC 应用程序。
我想知道Core中的ModelServices可以引用另一个ModelService吗?

ModelServices 是具体的实现,不继承任何接口。我在模型服务中编写业务逻辑,它依赖于存储库。

我做对了吗?

4

1 回答 1

1

ModelServices 是具体的实现,不继承任何接口。

如果我参考您的评论说:

ModelServices 是业务/领域服务

...那么这些服务显然应该从接口继承!

应用程序中需要访问服务的每一层(包括 UI)都会在不知道服务实现的情况下操作服务接口。请记住,洋葱架构的最外层是依赖解析层,这是服务接口在运行时与正确的服务实现绑定的地方。

现在回答你的问题:

我想知道Core中的ModelServices可以引用另一个ModelService吗?

服务实现类只会引用其他服务接口。在以下示例中,FooService 需要 service1 和 service2 来完成他的工作:

namespace MyBusiness.Core.Services
{
  internal class FooService: IFooService
  {
    public FooService(IService1 service1, IService2 service2)
    {
      _service1 = service1;
      _service2 = service2;
    }

    ...
  }
}

一切都将在运行时绑定!

于 2013-06-06T09:21:53.003 回答