Odziedziczyłem kod, który ma klasę AuthenticationManager ze wszystkimi statycznymi metodami.W jaki sposób można refaktoryzować klasy statyczne w celu użycia iniekcji zależności?
Im wprowadzenie DI i chciał dodać konstruktora, które miały zależność UserController
UserController _userController;
public AuthenticationManager(UserController userCont)
{
_userController = userCont;
}
Teraz Im uzyskiwanie błąd czasu kompilacji jako zmienna niestatyczny odwołuje z metody statycznej. Jaka byłaby Twoja rekomendacja najlepszej praktyki, aby to zadziałało z minimalnymi zmianami tej klasy i kodu wywołującego?
Używamy SimpleServiceLocator jako kontenera IOC.
Czy nie czas na uaktualnienie do [Simple Injector] (http://simpleinjector.codeplex.com)? Przestałem tworzyć prostego lokalizatora usług. – Steven
Dzięki za cynk - nie wiedziałem, że istnieje Simple Injector! Czy Simple Injector zapewnia dodatkową funkcjonalność, która rozwiązuje moje pytanie, czy jest to po prostu dobra rzecz? –
To nie odpowiada na twoje pytanie, ale Simple Injector jest szybszy, czystszy i ma znacznie lepszą obsługę dodawania rozszerzeń (większość opisanych tutaj zaawansowanych scenariuszy [tutaj] (http://simpleinjector.codeplex.com/wikipage?title = Advanced-scenarios & referringTitle = Documentation) nie są możliwe do wdrożenia z SSL). Możesz przeczytać o podstawowych różnicach SI SSL [tutaj] (http://www.cuttingedge.it/blogs/steven/pivot/entry.php?id=87). – Steven