.net 依赖注入和服务定位
据我所知,依赖注入与服务位置不同。但是包含库(我认为它是一个服务定位器)。该库应该如何使用,何时使用,unity本身是否正在使用它进行依赖注入?.net 依赖注入和服务定位,.net,dependency-injection,unity-container,common-service-locator,.net,Dependency Injection,Unity Container,Common Service Locator,据我所知,依赖注入与服务位置不同。但是包含库(我认为它是一个服务定位器)。该库应该如何使用,何时使用,unity本身是否正在使用它进行依赖注入? 注意:请不要引用CodePlex主页中关于其用法的内容。公共服务定位器界面是为希望使用DI的图书馆作者设计的 容器,而不强制库在使用库的应用程序上选择容器。其目的是,在需要解析对象的库中,您可以针对CSL接口编写代码;然后,您可以使用调用您的应用程序正在使用的任何容器 如果您没有编写可重用的库组件,请不要使用CSL。这是一个额外的层,不会给你买任何东西
注意:请不要引用CodePlex主页中关于其用法的内容。公共服务定位器界面是为希望使用DI的图书馆作者设计的 容器,而不强制库在使用库的应用程序上选择容器。其目的是,在需要解析对象的库中,您可以针对CSL接口编写代码;然后,您可以使用调用您的应用程序正在使用的任何容器
如果您没有编写可重用的库组件,请不要使用CSL。这是一个额外的层,不会给你买任何东西。不,依赖注入和服务位置不是一回事,但是它们在功能上有很多相似之处。他们没有分享的更多的是一种哲学方法 两者都提供对应用程序中配置的对象的访问。然而,依赖注入说,您永远不应该显式地请求对象(或接口)。相反,您应该指定一个对象或接口,框架将为您处理所有连接 服务位置是直接从服务定位器系统请求对象的位置
换句话说,服务定位要求您找到所需的对象。依赖注入假设您创建的对象已经到位。True words,但主要的困惑是Unity为什么要使用它,Unity是一个DI和MVVM轻型工具包。编辑:我认为@Chris Tavares提供了真正的原因。我认为你是对的,但是你能提供一个关于它是如何以这种方式使用的链接吗。@Sniffer请看一下的源代码。@SebastianWeber我会尝试看一看。