2013-09-11 2 views
0

Я прослеживание вопрос: ASP.NET MVC, set culture after authorizationинъекции зависимостей ASP.NET MVC в журнале событий приложений

нашу зависимость корня инъекции композиции является MvcApplication.Application_Start метод ASP.NET MVC в. Мы также регистрируемся для приложения приложения ASP.NET PostAuthenticateRequest в MvcApplication.Init.

Теперь нам нужно ввести экземпляр IUserSettingsRepository в наш обработчик событий OnPostAuthenticateRequest. Как это сделать?

Примечание: мы не хотим ставить статическое поле в наш класс MvcApplication, так как это запах кода.

ответ

1

Предполагая, что ваше решение для инъекций зависит от ASP.NET MVC, вы можете просто обратиться к нему с помощью DependencyResolver.Current. например:

DependencyResolver.Current.GetService<IUserSettingsRepository>(); 

(Строго говоря, это не совсем «нагнетание экземпляр», а разрешения зависимостей, используя подход «Service Locator»)

+0

Да, мы интегрированы в ASP.NET MVC и рассматривать этот решение раньше, однако, мы не были на 100% удовлетворены. Если есть какое-то другое лучшее решение, мы бы это признали :-) –

+0

Вам нужно решить 'IUserSettingsRepository', и вы утверждаете, что используете IoC, что было бы причиной не использовать Контейнер для решения проблемы? – haim770

+0

@ D.R. Расположение службы - единственная альтернатива. Это то, как MVC делает это внутренне для всего. SL не является анти-шаблоном, как утверждают многие. (Я писал об этом в блоге: http://blog.gauffin.org/2012/09/service-locator-is-not-an-anti-pattern/) – jgauffin

Смежные вопросы