Uso una structuremap nel mio progetto e molto spesso mi blocco in un metodo di estensione in cui ho bisogno di un'istanza di qualche oggetto.
il primo metodo è quello di inviare il mio repository al metodo di estensione e l'altro metodo è quello di avere un repository statico e inizializzarlo all'interno del mio metodo in questo modo.
public static class SomeExtensions {
static IRepository _repository;
public static string ExtensionsMethod1(this HtmlHelper helper) {
_repository = ObjectFactory.GetIntance<IRepository>();
// do stuff
}
}
cosa è meglio fare in questo scenario?
risposte:
3 per risposta № 1Non rispondendo veramente alla domanda, solo questo specifico frammento di codice:
Non dovresti usare un repository nel tuo ASP.Metodi helper html personalizzati di NET MVC. Questa è la responsabilità del controllore nel manipolare il modello. I metodi helper Html servono a generare piccoli snippet HTML.
Per quanto riguarda il caso più generale, allora bene, i metodi di estensione sono solo zucchero sintattico per semplici metodi statici, quindi non si possono iniettare dipendenze in essi.