使用API​​的SimpleInjector,如何使用SimpleInjector进行后期绑定?

时间:2019-01-07 22:27:02

标签: api dependency-injection ioc-container simple-injector

我试图弄清楚如何在以下情况下使用simpleinjector。

我有4个项目的解决方案

  1. 业务(具体业务类别)
  2. 回购(混凝土回购类)
  3. 合同(仅界面)
  4. API(组成根)

Business,Repo和Api直接引用该合同。

合同具有业务和回购接口

Business从合同项目实施IBusiness,并且

Repo从合同项目中实施IRepo

我不希望API有任何引用到Business或Repo项目的项目。那些2编译的程序集将被推送到常规位置(即:api上的bin文件夹)。 这是一张照片或我想要的。 enter image description here 当我查看simpleinjector的文档时,它要求我执行以下操作

container.Register<IRepo, Repo>();

这假定API项目具有Repo项目的知识。没有。 API项目仅知道具有IRepo和IBusiness接口的合同。因此,我的API项目将永远无法编译,因为它是从Composition根目录开始的,而当我将IRepo注册到Repo时,APi项目却不了解Repo项目。 API仅引用仅具有接口(IBusiness和IRepo)的Contract项目。业务和回购项目与合同项目是分开的,它们引用IBusiness和IRepo接口来创建业务和回购具体类。

问题是:如何使用SimpleInjector进行后期绑定?

过去,我使用ninject并使用ninjectModule,我能够告诉Business或Repo项目。如果Contract的请求来自IBusiness或IRepo,则应将其映射到Business或Repo。我不需要在Api上对Business concreate类或Repo具体类的任何引用。

可以使用simpleinjector进行相同的操作吗?我不想在API项目中放入Business或Repo的项目参考。

我不确定是否正在寻找合适的项目来实现这一目标。我的问题是为SimpleInjector理解这一点。

请随时提供帮助。

0 个答案:

没有答案