我试图弄清楚如何在以下情况下使用simpleinjector。
我有4个项目的解决方案
Business,Repo和Api直接引用该合同。
合同具有业务和回购接口
Business从合同项目实施IBusiness,并且
Repo从合同项目中实施IRepo
我不希望API有任何引用到Business或Repo项目的项目。那些2编译的程序集将被推送到常规位置(即:api上的bin文件夹)。 这是一张照片或我想要的。 当我查看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理解这一点。
请随时提供帮助。