我正在开发一种工具来创建表达式代理,生成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或其他方式来获取参数名称。
是否有一些框架方法已经做到了,我不知道?
答案 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];
}