Я унаследовал некоторый код, который имеет класс AuthenticationManager со всеми статическими методами.Как вы используете рефакторинг статических классов для использования инъекции зависимостей?
Im вводя DI и хотел бы добавить конструктор, который взял зависимость UserController
UserController _userController;
public AuthenticationManager(UserController userCont)
{
_userController = userCont;
}
Теперь я получаю ошибку компиляции время как нестатическая переменная ссылается из статического метода. Какова была бы рекомендация вашей лучшей практики, чтобы заставить ее работать с минимальными изменениями этого класса и вызывающего кода?
Мы используем SimpleServiceLocator как контейнер IOC.
Не пора ли обновиться до [Простой инжектор] (http://simpleinjector.codeplex.com)? Я прекратил разработку Simple Service Locator. – Steven
Спасибо за подсказку - я не знал, что Simple Injector существует! Простой инжектор предоставляет дополнительную функциональность, которая затрагивает мой вопрос, или это просто хорошая вещь? –
Он не затрагивает ваш вопрос, но простой инжектор работает быстрее, чище и имеет гораздо лучшую поддержку для добавления расширений (большинство описанных выше сценариев [здесь] (http://simpleinjector.codeplex.com/wikipage?title = Advanced-scenarios & referringTitle = Documentation) невозможно реализовать с помощью SSL). Вы можете прочитать о основных отличиях SI SSL (здесь) (http://www.cuttingedge.it/blogs/steven/pivot/entry.php?id=87). – Steven