/ / Consiglio di progettazione del codice: c #, metodi di estensione, structuremap

Consigli di progettazione del codice - c #, metodi di estensione, structuremap

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 № 1

Non 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.