Ho ereditato del codice che ha una classe AuthenticationManager con tutti i metodi statici.In che modo si rifattano le classi statiche per utilizzare l'iniezione delle dipendenze?
Im introducendo DI e voluto aggiungere un costruttore che ha preso una dipendenza UserController
UserController _userController;
public AuthenticationManager(UserController userCont)
{
_userController = userCont;
}
Ora Im ottenendo l'errore di tempo di compilazione come una variabile non statico si fa riferimento da un metodo statico. Quale sarebbe la tua migliore raccomandazione pratica per farlo funzionare con le minime modifiche a questa classe e al codice chiamante?
Stiamo utilizzando SimpleServiceLocator come contenitore IOC.
Non sarebbe il momento di eseguire l'aggiornamento a [Simple Injector] (http://simpleinjector.codeplex.com)? Ho smesso di sviluppare Simple Service Locator. – Steven
Grazie per il suggerimento - Non ero a conoscenza dell'esistenza di Simple Injector! Simple Injector offre funzionalità extra che rispondono alla mia domanda o è solo una buona cosa da fare? –
Non risponde alla tua domanda, ma il Simple Injector è più veloce, più pulito e ha un supporto molto migliore per l'aggiunta di estensioni (la maggior parte degli scenari avanzati descritti [qui] (http://simpleinjector.codeplex.com/wikipage?title = Advanced-scenarios e referringTitle = Documentazione) non è possibile implementare con SSL). Puoi leggere le differenze di base SI un SSL [qui] (http://www.cuttingedge.it/blogs/steven/pivot/entry.php?id=87). – Steven