IDependencyResolver è un anti-pattern?

Sto progettando alcune modifiche architettoniche in un’applicazione legacy ASP.NET. Ho prototipato alcune classi per la risoluzione delle dipendenze che simulano IDependencyResolver di ASP.NET MVC. Non posterò perché è praticamente la stessa interfaccia, ma in un altro linguaggio naturale.

Ho capito che potrebbe essere considerato Service Location, che a sua volta è di solito (non del tutto in alcuni casi) condannato a favore di Dependency Injection. Tuttavia, non sono riuscito a trovare alcuna raccomandazione contro l’utilizzo dell’implementazione della risoluzione delle dipendenze di ASP.NET MVC.

IDependencyResolver di ASP.NET MVC considera un anti-pattern? È una brutta cosa?

Se guardi la firma vedrai che è solo un Localizzatore di servizi con un altro nome. Service Locator è un anti-pattern e considero la relazione transitiva, quindi considero IDependencyResolver un anti-pattern .

A parte questo, anche l’interfaccia è interrotta perché non ha alcun metodo di rilascio .

Non ci credo … È ansible iniettare qualsiasi IoC che si desidera in ASP.NET MVC, che mi sembra un modello piuttosto buono.

Ecco un post sul blog sull’iniezione di Unity in ASP.NET MVC 3.