私はちょうど蹴りのための奇妙なしかしを求めています知っているためMETHODINFOを取得し、それは、ラムダ式のためMethodInfo
を取得することは可能でしょうか?、ラムダ式
私はこのような何かの後にしています:
(Func<int, string>(i => i.ToString())).MethodInfo
UPDATE 私はすなわち関わらず、関わらず、ラムダの本体は、メソッド呼び出し式であるかどうかの方法で情報を取得したいですラムダの本体がどのような表現式であるか。
です。
これは機能する場合があります。
var intExpression = Expression.Constant(2);
Expression<Func<int, Dog>> conversionExpression = i => Program.GetNewDog(i);
var convertExpression5 = Expression.ConvertChecked(intExpression, typeof(Dog), ((MethodCallExpression)(conversionExpression.Body)).Method);
class Program
{
static Dog GetNewDog(int i)
{
return new Dog();
}
}
しかし、私もこの仕事をしたい:
var intExpression = Expression.Constant(2);
Expression<Func<int, Dog>> conversionExpression = i => new Dog();
var convertExpression5 = Expression.ConvertChecked(intExpression, typeof(Dog), /*...???... */);
式はメソッドの情報を持っていません。コンパイルした場合は、デリゲートからメソッド情報を取得できます。 – leppie
私は式の作成に興味がありません。私は下のティモシー・シールズの答えに応じてアップデートを加えました。私が望むのは、デリゲートからのmethodInfoだけです。可能? –
これは '正常に動作します(新規のFunc(I => i.ToString()))。Method' –
leppie