ASP.NET MVC Представления Внедрение зависимостей без DependencyResolver? - PullRequest
0 голосов
/ 26 марта 2011

Можно ли внедрить зависимости в MVC ViewPage (должен поддерживать страницы макета) без использования DependencyResolver?

Я бы вообще не хотел использовать DependencyResolver (у меня были серьезные проблемы при внедрении сессий NH в ActionFilters впрошлое (протекает повсюду)).Однако я не уверен, есть ли альтернатива?

Другая сложность, с которой я столкнулся, заключается в том, что DependencyResolver должен быть осведомлен об арендаторе (у каждого арендатора есть свой собственный контейнер (StructureMap)).В настоящее время я делаю это, передавая ленивый экземпляр моего распознавателя контейнера арендатора (кажется, что это необходимо, иначе решетка кэшируется):

public SmDependencyResolver(Func<ISiteContainerResolver> containerResolver)
{
    this.containerResolver = containerResolver;
}

public object GetService(Type serviceType)
{
    var container = containerResolver().Resolve();

Если я в конечном итоге использую DependencyResolver, я должен отказаться от своего контроллера StructureMapфабрика, так как, похоже, DependencyResolver это тоже обрабатывает?

Спасибо, Бен

1 Ответ

1 голос
/ 26 марта 2011

Учитывая, что DependencyResolver используется во многих аспектах инфраструктуры ASP.NET MVC для внедрения зависимостей, ваша жизнь будет проще, если вы ее используете - как вы говорите, это означает, что вам не нужны ваши собственные версии таких вещей, какфабрика контроллеров.

Тем не менее, фреймворк очень гибкий, и вы всегда можете подключить свою собственную версию вещей - я просто предпочитаю создавать как можно меньше своего собственного кода по принципу KISS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...