我有3个项目。
1
/ \ - inheritance
2 3
1 个项目有 ObjectFactory.Initialize... 我有 1 个接口和两个实现。我想为 2 和 3 个项目使用两种不同的实现。我应该怎么做?可以使用 StructureMap 吗?
我有3个项目。
1
/ \ - inheritance
2 3
1 个项目有 ObjectFactory.Initialize... 我有 1 个接口和两个实现。我想为 2 和 3 个项目使用两种不同的实现。我应该怎么做?可以使用 StructureMap 吗?
StructureMap 不是这里的限制因素。您的 2 个接口实现存在于哪些项目中?
如果它们在项目 2 和 3 中,那么您需要在项目 2 和 3 中执行 ObjectFactory.Initialize,您知道要使用哪个接口实现。
如果它们在项目 1 中,您可以在项目 1 中创建两个新类,以项目 2 和 3 所需的方式初始化容器,然后确保为每个项目使用正确的类。
在这两种情况下,您需要两种不同的方法来构建容器以支持最终结果,在您的情况下是项目 2 和 3。
找到解决方案。在基础项目中,我应该初始化:
ObjectFactory.Initialize(x => x...)
但在依赖项目中,我应该在基础项目初始化后进行配置:
ObjectFactory.Configure(x => x...)