客户端上带有 IoC 的洋葱架构

Onion architecture with IoC on the client

我的应用程序使用域驱动的洋葱架构。它有 exact same layers as this.

但是,当我在客户端层的 mvc 应用程序中设置 IoC 依赖项时,我有点困惑。我应该从客户端调用存储库接口之类的东西,还是应该像在典型的 3 层 n 层应用程序中那样通过业务层?这样我的客户端层只会将业务接口注入其中,而不是存储库和业务接口。

如果我最终更改它以便客户端层仅访问业务功能,我将不得不在业务层上执行 IoC,因为它使用数据存储库。

您的客户端层应将存储库接口的实例注入业务层,以便业务层不知道任何基础结构实现,但具有实现存储库接口的实例,因此它可以通过调用存储库它。