【问题标题】:What is the IServiceLocator interface?什么是 IServiceLocator 接口?
【发布时间】:2011-02-06 22:58:39
【问题描述】:

据我了解,IServiceLocator 是一个将实际 IoC 容器抽象出来的接口?我正在询问与 Prism 相关的问题,我正在尝试 replace Unity with Prism,并且我看到 Prism 类依赖于 IServiceLocator。有人可以澄清接口的作用以及何时使用它吗?

还有; Common Service Locator 是什么,这在使用 IServiceLocator 时会有所帮助吗?

【问题讨论】:

    标签: .net ioc-container iservicelocator


    【解决方案1】:

    IServiceLocator 是服务定位器的抽象。 IoC 容器是服务定位器的一种超集,因此它们可以由 IServiceLocator 表示。但是,服务定位器模式比纯依赖注入模式更具侵入性,因此您应该尽可能倾向于后者。

    CommonServiceLocator 提供 IServiceLocator 接口和该接口的抽象实现来定义常见行为并帮助 IoC 容器定义它们的 IServiceLocator 适配器(每个主要的 IoC 容器都提供这样的适配器)。

    另见:

    【讨论】:

    • 谢谢!好答案。虽然找不到 Ninject 的 IServiceLocator 适配器,但也许它不被认为是主要的? (参考 (每个主要的 IoC 容器都提供这样的适配器)
    猜你喜欢
    • 2011-10-28
    • 2010-11-04
    • 2014-06-02
    • 2011-08-29
    • 2011-07-07
    • 2012-04-16
    • 2017-12-12
    • 2011-07-25
    • 2018-10-10
    相关资源
    最近更新 更多