Откуда появляется Microsoft.Practices.ServiceLocation?

Кто-нибудь знает, откуда Microsoft.Practices.ServiceLocation? Это пространство имен и dll, используемые в MS EnterpriseLibrary. По общему признанию, это очень простая DLL с несколькими классами (с использованием рефлектора), но я не могу найти для нее опубликованный исходный код. Это не в проекте Enterprise Library, а не в проекте Unity.

Так кто-то знает, был ли опубликован исходный код для этого и где? И почему это не часть Единства? Используется ли он где-нибудь еще?

Ответ 1

Он исходит из: https://github.com/unitycontainer/commonservicelocator

Из описания проекта:

Библиотека локатора общих служб содержит общий интерфейс для местоположение службы, приложение и разработчики инфраструктуры могут ссылаться. Библиотека предоставляет абстракцию через контейнеры и обслуживание IoC локаторы. Использование библиотеки позволяет приложение для косвенного доступа к возможностей, не полагаясь на Рекомендации. Надеемся, что использование эта библиотека, сторонние приложения и рамки могут начать использовать IoC/Местоположение службы без привязки сами до определенного реализация.

Эта абстракция реализуется несколькими структурами IoC, и Unity является одним из них. тем не менее, Unity не является владельцем этого проекта.

Таким образом, StructureMap, например, обеспечивает реализацию этих кладов, поэтому другие фреймворки (такие как Prism из шаблонов и практик) может легко работать с другими структурами IoC и не привязываться к Unity.