Microsoft.Practices.ServiceLocation来自哪里?

And*_*ykh 73 .net enterprise-library

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

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

Jul*_*uez 65

它来自:https://github.com/unitycontainer/commonservicelocator

从项目描述:

Common Service Locator库包含服务位置的共享接口,应用程序和框架开发人员可以参考该接口.该库提供了IoC容器和服务定位器的抽象.使用该库允许应用程序间接访问功能,而不依赖于硬引用.希望使用此库,第三方应用程序和框架可以开始利用IoC /服务位置,而无需将自己与特定实现联系起来.

这种抽象是由几个IoC框架实现的,而Unity就是其中之一.尽管如此,Unity并不是该项目的所有者.

这样StructureMap,例如,提供了执行这些clases的,所以其他框架(如棱镜从模式与实践)可以很容易地与其他IoC框架工作,并且不被绑定到统一本身.

  • 自CommonServiceLocator 2.0.1以来发生了重大变化.命名空间"Microsoft.Practices.ServiceLocation"更改为"CommonServiceLocator".@srock所以不需要降级. (5认同)
  • 我遇到了同样的错误,但是我的机器上安装了Enterprise Library 4.1,我的同事开发人员在我们的通用解决方案中添加了Enterprise库参考,并且已经签入了Enterprise Library版本5.因此,您可能遇到了Enterprise库版本问题. (2认同)
  • CommonServiceLocator 2.0版不再包含Microsoft.Practices.ServiceLocation。也许它刚刚移动?我将(Nuget)降级为CommonServiceLocator 1.3,项目参考Microsoft.Practices.ServiceLocation又回来了。 (2认同)

Len*_*rri 14

如果你想要,你可以在NuGet这里抓住包裹:

http://www.nuget.org/packages/CommonServiceLocator/