ASP.NET MVC 3 RTM способ ServiceLocator - PullRequest
1 голос
/ 27 января 2011

Я немного запутался с IServiceLocator, IMvcServiceLocator, IDependencyResolver и т. Д ...

Что такое ASP.NET MVC 3 RTM для поиска служб?

Все, что мне нужно, это получить доступ к чему-то вроде

T Resolve<T>();
T Resolve<T>(string key);

из любого места (включая другую сборку).

РЕДАКТИРОВАТЬ: пример

Мое веб-приложение имеет модульную архитектуру. Темы являются одним из аспектов модулей. Каждая тема - это отдельная библиотека классов. Невозможно узнать, какие услуги нужны теме. Например. в некоторых представлениях может отображаться виджет облака тегов, и для этого виджета требуется экземпляр TagRepository.

В настоящее время я использую Windsor для IoC и могу выставить этот контейнер для модулей. Но я не хочу, чтобы каждый модуль зависел от Виндзора. Я хотел бы знать, есть ли решение в стандартной библиотеке Mvc, поскольку модули все равно нуждаются в ссылке на него.

1 Ответ

0 голосов
/ 27 января 2011

Asp.net Mvc не имеет собственного DI-контейнера. Вы должны будете реализовать IDependencyResolver. Взгляните на этот вопрос: Resoldency Deoldency Resolver для MVC 3

...