Ich weiß, dass es möglich ist, DependancyResolver zu verwenden und Castle Windsor mit MVC zu registrieren, aber aufgrund der in Ссылка beschriebenen Probleme haben wir bei der WindsorControllerFactory-Methode der Implementierung in unseren MVC-Projekten.
Es sieht jedoch so aus, als ob die ApiControllers eine andere Art von Fabrik benutzen, da Castle Windsor die Abhängigkeiten nicht injizieren kann.
Hat jemand herausgefunden, wie man Castle Windsor mit ASP.NET Web API und MVC ohne den DependencyResolver verwendet?
Dank Critians Beitrag und einigen Online-Suchanfragen habe ich es geschafft, den Code für jeden anderen zu erstellen, der dieses Problem hat. Ich habe es mit MVC3 und ASP.NET Web Api Beta arbeiten, aber ich denke, die gleiche Lösung sollte für MVC4 funktionieren.
Zuerst habe ich eine WindsorHttpControllerFactory erstellt, da die ApiControllers eine andere Fabrik verwenden als die MVCs.
%Vor%Der heikle Teil der Registrierung war, dass es eine ganze Menge anderer Sachen zu registrieren schien. Das ist, womit ich endete.
%Vor%Ich musste meine eigene Implementierung eines ILoggers erstellen. Sie könnten eine Stub-Version wie unten verwenden.
%Vor%Ich habe auch vor zwei Tagen mit diesem Problem zu tun gehabt und dieses Beitrag hat mir geholfen. Und vergessen Sie nicht, WebAPI-Controller in Ihrem Windsor Bootstrap hinzuzufügen.
%Vor%UPDATE für ASP.NET MVC 4 RC: Dies nützliche Post sagt Ihnen, wie Sie Windsor mit WebAPI verwenden, es funktioniert wie ein Charme.
Ich habe einen Post darüber geschrieben, wie man das macht und es mit RavenDB verbindet, was Sie vielleicht nützlich finden könnten hier
Ich habe es geschafft, von meinem windsor-Container zu lösen, indem ich GlobalConfiguration.Configuration.ServiceResolver.SetResolver
verwende, wie in hier .
NULL wird zurückgegeben, wenn die Typen nicht aufgelöst werden können und MVC die Abhängigkeiten neu aufbaut.
Bearbeiten: Stellen Sie sicher, dass Sie ein Installationsprogramm für IHttpController haben
Tags und Links asp.net-web-api asp.net-mvc-3 c# asp.net castle-windsor