特定控制器的操作列表

gri*_*iti 1 c# asp.net-mvc

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

此处找到的所有控制器列表.

我还在阅读列出控制器上具有特定属性的所有操作,这些属性与我的目的相匹配,因为我还需要具有特定属性的操作.但我只有所选控制器的名称/ GUID,而不是对象本身.

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

BFr*_*ree 6

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

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

}
Run Code Online (Sandbox Code Playgroud)

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

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

}
Run Code Online (Sandbox Code Playgroud)