2016-03-30 9 views
0

私は、ルート名を手動で検索せずにmvcルートを生成する式プロキシを作成するためのツールを作成しています。過去に私はこの情報を与えられたルート上の属性を通して手動で提供しました。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

GetParametersMethodInfoは、メソッドのパラメータに関するすべての情報を提供するので、名前だけを返す別のメソッドはおそらく必要ありません。たとえば、 のようになります。

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

「コードが実行されているときに、コード内にレイアウトされた情報しか持たないはずです」という考えを確認していない典型的なケースです...そうです、記述されているクラスにコンパイルされていることを除けば。しかし、ありがとう。 – Dbl