是否有标准方法来获取mvc路由方法的变量名称

时间:2016-03-30 10:35:00

标签: asp.net-mvc asp.net-mvc-routing

我正在开发一种工具来创建表达式代理,生成mvc路由而无需手动查找路由名称。在过去,我通过给定路线上的属性手动提供了此信息。

但是我想知道是否有一种方法来获取MVC框架给出的这些信息。

让我们想象一下这个场景:

public class SomeController : ApiController 
{
    public int SomeMethod(int someParam1, string someParam2)
    {
    }
}

var methodInfo = typeof(SomeController).GetMethod("SomeMethod");
var result = ImaginaryMethod(methodInfo); // Should return ["someParam1", "someParam2"]

我想知道是否有办法通过例如方法的MethodInfo或其他方式来获取参数名称。

是否有一些框架方法已经做到了,我不知道?

1 个答案:

答案 0 :(得分:1)

GetParameters的{​​p> MethodInfo提供了有关方法参数的所有信息,因此可能不需要另一种只返回其名称的方法。 例如:

  public static string[] ImaginaryMethod(System.Reflection.MethodInfo method)
{
    return method != null ? method.GetParameters().Select(p => p.Name).ToArray() : new string[0];
 }