sto creando un nuovo progetto in ASP.net utilizzando MVC 4.migliori pratiche per l'iniezione di dipendenza
Voglio installare l'iniezione di dipendenza utilizzando Ninject
. Ma prima di procedere, quali sono le migliori pratiche quando si imposta l'iniezione di dipendenza?
Attualmente ho una configurazione di classe raccoglitore all'interno del webproject che farà riferimento a progetti di dati all'interno della soluzione.
La classe legante è la seguente:
Public static class Binder
{
static Ninject.IKernel _kernel;
static Binder()
{
_kernel = new Ninject.StandardKernel();
_kernel.Bind<IConfig>().To<AppSettingsConfig>();
_kernel.Bind<IDocuments>().To<DocumentsClass.Documents>();
}
public static T GetImplementation<T>()
{
return _kernel.Get<T>();
}
}
Poi nel mio controller io uso il metodo GetImplementation di utilizzare la dipendenza richiede esatto, piuttosto che registrare tutto all'avvio dell'applicazione.
codice di esempio dal controllore:
Public ActionResult Get (int id)
{
var repository = Binder.GetImplementation<IDocuments>();
// do some stuff with the repository here
}
Non so se questo sarebbe un buon approccio? Qualsiasi consiglio sarebbe buono.
Un po 'di codice sarebbe bene così? – BenjaminPaul
@Wiktors risposta di seguito è la strada da percorrere. Usa l'iniezione del costruttore il più possibile. Utilizzare l'anti-pattern SL solo se, per qualche motivo, non si è in grado di impostare una catena di dipendenze completa. –