Ich versuche, ASP.NET MVC 3 und Ninject 2.2 zu verwenden, um ein Logger-Objekt in ein benutzerdefiniertes ActionFilterAttribute zu injizieren.
Ich kann das zum Laufen bringen, wenn ich jeden Controller mit dem benutzerdefinierten Attribut markiere.
Allerdings kann ich das nicht zum Laufen bringen, wenn ich die Attributdekoration von den Controllern entferne und versuche, einen globalen Aktionsfilter zu verwenden.
Hier ist der Code:
unter App_Start - NinjectMVC3.cs
%Vor%}
Global.asax.cs
%Vor%}
TestLoggingAttribute.cs
%Vor%HomeController.cs
%Vor%Wie ich bereits erwähnt habe, wenn ich das [TestLogging] Attribut im Controller auskommentiere, funktioniert das alles. Allerdings möchte ich stattdessen einen globalen Filter verwenden. Kann mir jemand helfen?
Vielleicht finden Sie den folgenden Blogpost nützlich. Also in Ihrer RegisterServices
-Methode einfach:
und um die BindFilter
Erweiterungsmethode in den Geltungsbereich zu bringen, vergiss nicht eine richtige using
Direktive hinzuzufügen:
Tags und Links asp.net-mvc-3 action-filter dependency-injection ninject