W ASP.net MVC4 istnieje "nowa" koncepcja web API do ujawniania funkcjonalności CRUD w twoim modelu danych. Podstawową klasą dla tych kontrolerów jest DataController
, która pochodzi z ApiController
.Dlaczego kontrolery web ASPI Asp.net nie pochodzą z IController'a
Niestety ten ApiController
nie pochodzi z IController
, co jest problematyczne, ponieważ te żądania nie mogą być obsługiwane przez twoją normalną fabrykę kontrolerów niestandardowych, ponieważ mają one zwrócić instancję IController
.
Czy ktoś wie, dlaczego tak się dzieje, ponieważ nie widzę powodu, dla którego miałbyś mieć kontroler w swoim projekcie MVC, który nie pochodzi z IController
, ponieważ to łamie fabrykę kontrolerów niestandardowych, ponieważ nie jest w stanie utworzyć instancji każdego kontrolera w twoim projekcie.
W skrócie, z powodu tego spadku nie można użyć kontenera DI do wstrzykiwania zależności.
Użyłem wcześniej własnej fabryki kontrolerów, ta klasa nadal jest wywoływana nawet dla kontrolerów webapi. Nie mogę pobrać aplikacji, aby zadzwonić do DependencyResolver. Wszystkie żądania przechodzą przez mój własny ControllerFactory (usunięcie tej niestandardowej fabryki tego nie zmienia). – thekip