2010-10-21 151 views
64

有谁知道Microsoft.Practices.ServiceLocation从哪里来?这是MS EnterpriseLibrary中使用的命名空间和DLL。无可否认,这是一个非常简单的dll,只有少数类(使用反射器),但我找不到它的发布源代码。它不在Enterprise Library项目中,也不在Unity项目中。Microsoft.Practices.ServiceLocation来自哪里?

那么有人知道这个源代码是否已经发布以及在哪里?还有它为什么不是Unity的一部分?它在其他地方使用吗?

+0

有关这个问题的另一个答案:http://stackoverflow.com/a/25728456 – Believe2014 2014-09-08 16:08:48

回答

60

它来源于:https://github.com/unitycontainer/commonservicelocator

从项目介绍:

通用服务定位器库 包含哪些应用程序和 框架开发者还可以 服务位置共享接口。 该库提供了一个取自IoC容器和服务 定位器的抽象 。使用该库允许 应用程序间接访问 的功能,而不依赖于硬引用 。希望是使用这个库,第三方应用程序 和框架可以开始利用 IoC /服务位置,而无需将 自己关联到特定的 实现。

这个抽象是由几个IoC框架实现的,而Unity就是其中之一。不过,Unity并不是该项目的所有者。

这样StructureMap,例如,提供了执行这些clases的,所以其他框架(如来自Prism图案&实践)可以很容易地与其他IoC框架工作,并且不被绑定到Unity本身。

+1

注意,不仅棱镜,但企业库本身现在是容器不可知的,可以与其他IoC容器一起运行。 – 2010-11-23 00:30:51

+2

我有同样的错误,但是我的机器上安装了企业库4.1,我的同事开发人员在我们的通用解决方案中添加了企业库引用,因此企业库版本5已签入。因此,您可能会遇到Enterprise库版本问题。 – 2011-01-17 23:36:30

+0

我想知道为什么Microsoft团队没有在MSEL版本中包含此项... – Andry 2013-03-14 10:28:41