2010-12-18 7 views
1

Ich versuche, einige Erweiterungen zum Testen zu schreiben, und eine der Spezifikationen, die ich ausführen möchte, würde auf der Suche nach der Liste der Attribute einer Methode (Aktion) basieren.Asp.Net Mvc - Finden Sie Attribute für eine bestimmte Methode

Bisher Dies ist der Code ich zu greifen verwenden off-Attribute eine Methode:

var homeController = new HomeController(); 
(controller.GetType().GetMethod(action, parameters)).GetCustomAttributes(false) 

etc ...

oder für einen Controller, so etwas wie dies (die deutlicher und nicht wiederverwendbar)

(typeof(HomeController)).GetCustomAttributes(false) 

die Frage ist also, da ich eine generische Wirkung von Typ Action Beispiel haben:

var actionResult = new HomeController().Index(); 

Gibt es eine Möglichkeit, die Attribute dieser Instanz der actionResult zu finden?

Antwort

2

Wenn Sie nur actionResult haben, dann haben Sie nicht wirklich die Aktionsmethode. Sie haben nur das Ergebnis seiner Ausführung. Mehrere Methoden können beispielsweise das gleiche Ergebnis liefern.

Sie müssen einen Verweis auf die Methode selbst haben. Ihre Reflektionsanrufe sollten in Ordnung sein. Was magst du an ihnen nicht?

Verwandte Themen