2010-10-21 150 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