Unity容器如何设计?

How to design the Unity Container?

我有三个项目:WebAPIServicesRepository

WebAPI 引用了 ServicesServices 引用了 Repository

现在我需要为 ServicesRepositories 添加一个 Unity 容器,但在 WebAPI 中不允许添加对 RepositoryWebAPI 仅供参考 Services.

我知道如何为 Services 配置 unity,但是如何为 Repository

配置

如何更改此设置以获得所需的设计?

我的建议是简单地添加另一个项目 - 将其命名为 "Infrastructure"。然后该项目可以全权负责向 IoC 注册事物 - 因此该项目将需要引用每个包含任何需要注册的项目,并且它可以由 WebAPI 项目调用。

这样,WebApi 项目就不需要直接了解存储库中的任何内容;它只知道如何获得一个 IoC 容器,然后可以被任何东西使用。