2010-10-21 1 views
64

Qualcuno sa da dove proviene Microsoft.Practices.ServiceLocation? Questo è uno spazio dei nomi e una DLL usati in MS EnterpriseLibrary. Ammetto che è una dll molto semplice con solo una manciata di classi (usando reflector), ma non riesco a trovare il codice sorgente pubblicato per questo. Non è nel progetto Enterprise Library e non nel progetto Unity.Da dove proviene Microsoft.Practices.ServiceLocation?

Quindi qualcuno sa se il codice sorgente di questo è stato pubblicato e dove? E anche perché non fa parte dell'Unità? È usato altrove?

+0

Un'altra risposta relativa a questa domanda: http://stackoverflow.com/a/25728456 – Believe2014

risposta

60

Viene da: https://github.com/unitycontainer/commonservicelocator

Dalla descrizione del progetto:

Il Servizio comune Locator biblioteca contiene un'interfaccia condivisa per posizione servizio che gli sviluppatori di applicazioni e quadro possono fare riferimento. La libreria fornisce un'astrazione su contenitori IoC e servizi di localizzatori . L'utilizzo della libreria consente a un'applicazione di accedere indirettamente alle funzionalità senza fare affidamento su riferimenti rigidi . La speranza è che usando questa libreria, le applicazioni di terze parti e le strutture possano iniziare a sfruttare IoC/Service Location senza legare a un'implementazione specifica .

Questa astrazione è implementata da diversi framework IoC, e Unity è uno di questi. tuttavia, Unity non è il proprietario di quel progetto.

questo modo StructureMap, ad esempio, prevede l'attuazione di tali clases, così altri ambiti (quali Prism dai modelli & pratiche) può facilmente lavorare con altre strutture IoC e non essere vincolato a Unity stessa.

+1

Si noti che non solo Prism, ma l'Enterprise La libreria stessa ora è indipendente dal contenitore e può essere eseguita con altri contenitori IoC. –

+2

Ho avuto lo stesso errore ma avevo installato la libreria Enterprise 4.1 sulla mia macchina e il mio collega sviluppatore che ha aggiunto il riferimento alla libreria Enterprise alla nostra soluzione comune ha fatto il check in Enterprise Library versione 5. Quindi potresti avere un problema di versione della libreria Enterprise. –

+0

Mi chiedo perché il team Microsoft non abbia incluso questo nella versione MSEL ... – Andry