Является ли IDependencyResolver анти-шаблоном?

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

Я понял, что это может считаться местом обслуживания, которое, в свою очередь, обычно (не полностью в некоторых случаях) осуждается в пользу Injection Dependency. Тем не менее, я не мог найти рекомендаций относительно использования реализации разрешения зависимостей ASP.NET MVC.

Является ли ASP.NET MVC IDependencyResolver рассматриваться как анти-шаблон? Это плохо?

Ответ 1

Если вы посмотрите на подпись вы увидите, что это просто локатор сервисов с другим именем. Локатор сервисов - это анти-шаблон, и я считаю переход транзитивным, поэтому я считаю IDependencyResolver анти-шаблон.

Кроме того, интерфейс также сломан, потому что у него нет метода выпуска.

Ответ 2

Я так не верю... Вы можете ввести любой IoC, который вы хотите, в ASP.NET MVC, который кажется мне очень хорошим шаблоном.

Вот сообщение в блоге о введении Unity в ASP.NET MVC 3.