【问题标题】:Is there a standard way to obtain variable names of a mvc route method是否有标准方法来获取 mvc 路由方法的变量名
【发布时间】:2016-03-30 22:08:18
【问题描述】:

我正在开发一个工具来创建一个表达式代理来生成 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 或其他方式来获取参数名称。

是否有一些我不知道的框架方法已经这样做了?

【问题讨论】:

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


    【解决方案1】:

    MethodInfoGetParameters 提供有关方法参数的所有信息,因此可能不需要另一个只返回其名称的方法。 例如:

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

    【讨论】:

    • 呃。没有验证“当代码运行时它不应该包含仅在代码中列出的信息”的经典案例......是的,除了它被编译到正在描述的类中。不过还是谢谢。
    猜你喜欢
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-04
    相关资源
    最近更新 更多