【发布时间】:2012-03-10 02:34:59
【问题描述】:
我最近从 StructureMap 跳到了 Ninject。一切都很顺利,直到我意识到 Ninject 没有 StructureMap 的 ObjectFactory(服务定位器)的版本。
我发现了 Common Service Locator,它为包括 Ninject 在内的任何 IOC 容器提供了服务定位器模式。它在我的“启动”项目中效果很好 - 例如网站。但是,如果我尝试从子项目访问 ServiceLocator.Current,例如Core 或 Data 似乎 CommonServiceLocator 不知道我的任何依赖关系映射。
如何从子项目中使用 Common Service Locator?
注意我知道关于 ServiceLocator 作为模式/反模式的争论。我发现在作为反模式的 ServiceLocator 和作为反模式的贫血域模型之间存在权衡 - 有时使用服务定位器更容易和可维护。 p>
【问题讨论】:
-
> 有时使用服务定位器更容易和可维护。我不能说我完全同意该声明,但无论如何......你有任何代码显示你如何设置 NInject 定位器适配器?
-
无缘无故引入 CSL,因为你想忽略关于 SL 的建议并不会改变你正在寻找一种方法来做 SL 的事实,因此我的 VTC
标签: dependency-injection inversion-of-control ninject structuremap common-service-locator