我知道这听起来很蹩脚,但 MSDN 上似乎有一堆空洞的信息。喜欢这个链接ServiceLocator。我刚刚使用 Unity 和 Prism 进行了一个项目。我在一些像这样传入 WPF UserControl 的代码中找到了它
var alert = ServiceLocator.Current.GetInstance<AlertControl>();
这像 Unity 的决心吗?
我知道这听起来很蹩脚,但 MSDN 上似乎有一堆空洞的信息。喜欢这个链接ServiceLocator。我刚刚使用 Unity 和 Prism 进行了一个项目。我在一些像这样传入 WPF UserControl 的代码中找到了它
var alert = ServiceLocator.Current.GetInstance<AlertControl>();
这像 Unity 的决心吗?
http://commonservicelocator.codeplex.com/
从项目描述:
Common Service Locator 库包含一个用于服务定位的共享接口,应用程序和框架开发人员可以引用该接口。该库提供了对 IoC 容器和服务定位器的抽象。使用该库允许应用程序在不依赖硬引用的情况下间接访问这些功能。希望使用这个库,第三方应用程序和框架可以开始利用 IoC/服务位置,而无需将自己束缚于特定的实现。
这种抽象是由几个 IoC 框架实现的,Unity 就是其中之一。然而,Unity 不是该项目的所有者。
例如,通过这种方式,StructureMap 提供了这些类的实现,因此其他框架(例如来自模式和实践的 Prism)可以轻松地与其他 IoC 框架一起使用,而不必绑定到 Unity 本身。