Ho notato che uno degli argomenti contro l'utilizzo del CSL è falso, perché gli sviluppatori pensano che questa libreria sia in grado di eseguire il modello di individuazione dei servizi. Questo tuttavia non è il caso, perché è facile utilizzarlo anche con il pattern Iniezione di dipendenza.
Tuttavia, la libreria CSL è stata appositamente progettata per i progettisti di framework che devono consentire agli utenti di registrare le dipendenze. Poiché la libreria chiamerà direttamente il CSL, dal punto di vista del framework stiamo parlando del pattern SL, da cui il suo nome.
Come progettista di framework, tuttavia, prendere una dipendenza dal CSL non dovrebbe essere presa alla leggera. Per l'usabilità del tuo framework è normalmente molto meglio avere il tuo meccanismo DI. Un meccanismo molto comune consiste nell'impostare le dipendenze nel file di configurazione. Questo modello è utilizzato in tutto il framework .NET. Quasi ogni dipendenza può essere sostituita con un'altra. Il modello di provider .NET è basato su questo.
Quando tu, come progettista di framework, fai una dipendenza dal CSL, sarà più difficile per gli utenti usare la tua applicazione. Gli utenti dovranno configurare un contenitore IoC e collegarlo al CSL. Tuttavia, non è possibile per il framework convalidare la configurazione come si può fare mentre si utilizza il sistema di configurazione .NET, che come tutti i tipi di supporto di convalida in esso.
Sei alla ricerca di scenari di utilizzo per Common Service Locator in modo specifico o più generale per il modello di localizzazione del servizio? I termini non sono necessariamente intercambiabili ... – MattDavey