特定の入力からmethodinfoクラスを返すメソッドを記述しようとしています。そのメソッドの汎用バージョンを作成するためのビューがあります。MethodGroupを汎用パラメータとして使用する
var m = myClass.GetType().GetMethod("SomeMethod").MakeGenericMethod(...blahblah..);
これは動作し、すべての良いですが、私は私のメソッド名の文字列リテラルを持っているので、リファクタリングの過程で、私は、私は私がいない使用していますのいずれかの方法で名前を変更するために起こる場合を除き、実行時まで見つけてください。
私がしたいのは、メソッド群を指定するlambaを渡すことができるヘルパーメソッドを作成することです。その方法では、intellisenseなどの言及はしませんが、メソッド名のコンパイル時のチェックが行われます。
MethodInfo mi = myClass.GetMethodInfo(o => o.SomeMethod);
m = mi.MakeGenericMethod(..blah...);
しかし、私はヘルパーのメソッドのシグネチャを把握することができていない...
public MethodInfo GetMethodInfo(Func<MyClass,XXXX> lambda){ //What is my XXXX ? }
あなた 'SomeMethod'の署名がどのようなものが見えますか? –
これは実際にはポイント@M.Babcockの可能性があり、おそらくそれが異なるため、特定のメソッドシグネチャではなくメソッドグループから解決したいのです。 –
私はこれが可能だとは思わないが、私は間違っている可能性がある。 'Func'はラムダに何を渡すべきかを知っていますが、どうすればそれを知ることができますか? –