我有一个控制器名称列表,然后列出了给定控制器中的所有操作(名称,GUID)。
找到的所有控制器列表here。
我还在阅读List all the actions on a controller with specific attribute,这符合我的目的,因为我还需要具有特定属性的操作。但我只有所选控制器的名称/ GUID,而不是对象本身。
我的场景:用户选择一个控制器(级联下拉列表),然后选择来自此控制器的操作来配置一些访问(和链接)。因此,我只需要具有自定义属性的操作。
答案 0 :(得分:6)
您可以继续使用Reflection,就像您从程序集中获取继承自Controller的类型一样。获得类型后,您可以枚举方法:
foreach(MethodInfo method in myContollerType.GetMethods(BindingFlags.Public | BindingFlags.Instance))
{
}
然后,对于每种方法,您都可以获得所有自定义属性:
foreach (var attribute in method.GetCustomAttributes(typeof(MyAttributeType),false))
{
}