2010-10-21 10 views
64

Weiß jemand wo Microsoft.Practices.ServiceLocation herkommt? Dies ist ein Namespace und eine DLL, die in MS EnterpriseLibrary verwendet werden. Zugegeben, es ist eine sehr einfache DLL mit nur einer Handvoll Klassen (unter Verwendung von Reflektoren), aber ich kann keinen veröffentlichten Quellcode dafür finden. Es befindet sich nicht im Enterprise Library-Projekt und nicht im Unity-Projekt.Woher kommt Microsoft.Practices.ServiceLocation?

Also weiß jemand, ob der Quellcode dafür veröffentlicht wurde und wo? Und warum ist es nicht Teil von Unity? Wird es irgendwo anders benutzt?

+0

Eine andere Antwort auf diese Frage bezogen werden: http://stackoverflow.com/a/25728456 – Believe2014

Antwort

60

Es kommt aus: https://github.com/unitycontainer/commonservicelocator

Aus der Projektbeschreibung:

Die Common Service Locator Bibliothek enthält eine gemeinsame Schnittstelle für Service Lage, die Anwendung und Framework-Entwickler verweisen kann. Die Bibliothek bietet eine Abstraktion über IoC-Container und Service Locators. Durch Verwendung der Bibliothek kann eine Anwendung indirekt auf die -Funktionen zugreifen, ohne auf harte Referenzen angewiesen zu sein. Die Hoffnung ist, dass mit diese Bibliothek, Anwendungen von Drittanbietern und Frameworks beginnen können, IoC/Service Location zu nutzen, ohne selbst bis zu einer bestimmten Implementierung zu binden.

Diese Abstraktion wird von mehreren IoC-Frameworks implementiert und Unity ist eine davon. Trotzdem ist Unity nicht der Besitzer dieses Projekts.

Auf diese Weise StructureMap, bietet beispielsweise Umsetzung dieses clases, so andere Frameworks (wie Prism von Mustern & Praktiken) kann mit anderen IoC Frameworks leicht arbeiten und nicht an Unity selbst gebunden sein.

+1

Beachten Sie, dass nicht nur Prism aber die Enterprise Die Bibliothek selbst ist jetzt containerunabhängig und kann mit anderen IoC-Containern ausgeführt werden. –

+2

Ich hatte den gleichen Fehler, aber ich hatte Enterprise-Bibliothek 4.1 auf meinem Computer installiert und mein Kollege Entwickler, der die Enterprise-Bibliothek Verweis auf unsere gemeinsame Lösung hinzugefügt hatte Enterprise Library Version 5 eingecheckt. So haben Sie möglicherweise eine Enterprise-Bibliothek Version Problem. –

+0

Ich frage mich, warum das Microsoft-Team dies nicht in die MSEL-Version aufgenommen hat ... – Andry