Where does Microsoft.Practices.ServiceLocation come from?

Andrew Savinykh picture Andrew Savinykh · Oct 21, 2010 · Viewed 80.4k times · Source

Does any one know where Microsoft.Practices.ServiceLocation comes from? This is a namespace and a dll used in MS EnterpriseLibrary. Admittedly it's a very simple dll with just a handful of classes (using reflector), but I can't find published source code for it. It's not in Enterprise Library project and not in Unity project.

So does someone know if the source code for this was published and where? And also why is it not part of Unity? Is it used anywhere else?

Answer

Julian Dominguez picture Julian Dominguez · Oct 21, 2010

It comes from: https://github.com/unitycontainer/commonservicelocator

From the project description:

The Common Service Locator library contains a shared interface for service location which application and framework developers can reference. The library provides an abstraction over IoC containers and service locators. Using the library allows an application to indirectly access the capabilities without relying on hard references. The hope is that using this library, third-party applications and frameworks can begin to leverage IoC/Service Location without tying themselves down to a specific implementation.

This abstraction is implemented by several IoC frameworks out there, and Unity is one of them. nevertheless, Unity is not the owner of that project.

This way StructureMap, for example, provides implementation of those clases, so other frameworks (such as Prism from patterns & practices) can easily work with other IoC frameworks and not be bound to Unity itself.