Where does Microsoft.Practices.ServiceLocation come from?

Solution 1:

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.

Solution 2:

If you want you can grab the NuGet package here:

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

Solution 3:

Its a part of Enterprise Library : http://msdn.microsoft.com/en-us/library/ff664629(PandP.50).aspx.

Download it, together with documentation, from http://entlib.codeplex.com/.