代码之家  ›  专栏  ›  技术社区  ›  griti

特定控制器的操作列表

  •  1
  • griti  · 技术社区  · 16 年前

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

    找到的所有控制器的列表 here .

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

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

    1 回复  |  直到 16 年前
        1
  •  6
  •   BFree    16 年前

    可以继续使用反射,就像在程序集中获取从控制器继承的类型一样。一旦您有了类型,就可以枚举方法:

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

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

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