Comme Darin points, ASP.NET MVC 4 est un Cadre et un conteneur est agnostique. C'est pourquoi il offre un localisateur de service sous la forme d' IDependencyResolver
. Cela permet à quiconque de brancher leur conteneur de choix.
Cependant, je n'appellerais pas cela un anti-modèle. Cela vous permet d'utiliser le conteneur de votre choix, mais il n'a pas la force de vous le développeur de l'application pour l'utilisation du service de localisation. Si le cadre a forcé les développeurs à utiliser le Service de Localisation, alors je dirais que c'est un anti-modèle. Mais le développeur qui crée un ASP.NET MVC de l'application est libre d'utiliser DI via le constructeur de l'injection, la configuration de la propriété, ou l'endroit. C'est leur choix.
Regardez tous les ASP.NET MVC exemples de l'injection de dépendance publié par moi-même ou le ASP.NET MVC équipe. Dans presque tous les cas, ils sont à l'aide du constructeur d'injection. Ils ne sont pas à l'aide de l'emplacement du service.
En fait, la plupart des ASP.NET MVC code source lui-même ne doit pas utiliser le service de localisation pour récupérer les dépendances. Il y a quelques endroits clés où le MVC appels dans le service locator pour héritage et d'Api. Mais c'est tout.