特定控制器的操作列表

时间:2009-12-28 16:54:38

标签: c# asp.net-mvc

我有一个控制器名称列表,然后列出了给定控制器中的所有操作(名称,GUID)。

找到的所有控制器列表here

我还在阅读List all the actions on a controller with specific attribute,这符合我的目的,因为我还需要具有特定属性的操作。但我只有所选控制器的名称/ GUID,而不是对象本身。

我的场景:用户选择一个控制器(级联下拉列表),然后选择来自此控制器的操作来配置一些访问(和链接)。因此,我只需要具有自定义属性的操作。

1 个答案:

答案 0 :(得分:6)

您可以继续使用Reflection,就像您从程序集中获取继承自Controller的类型一样。获得类型后,您可以枚举方法:

foreach(MethodInfo method in myContollerType.GetMethods(BindingFlags.Public  | BindingFlags.Instance))
{

}

然后,对于每种方法,您都可以获得所有自定义属性:

foreach (var attribute in method.GetCustomAttributes(typeof(MyAttributeType),false))
{

}