Type.GetMethod()を使用してラムダパラメーターを持つメソッドを取得するにはどうすればよいですか?これを使用して、FuncのようなパラメータのQueryable.Anyメソッドを取得しようとしています。
typeof(Queryable).GetMethod("Any", new Type[]{typeof(Func<ObjType, bool>)})
しかし、それはnullを返し続けます。
間違っていることが4つあります。
Queryable.Any-の最初のパラメータを見逃しましたIQueryable<T>Func<ObjType, bool>なく、デリゲートタイプを使用していますExpression<Func<ObjType, bool>>あなたが欲しい:
var generic = typeof(Queryable).GetMethods()
.Where(m => m.Name == "Any")
.Where(m => m.GetParameters().Length == 2)
.Single();
var constructed = generic.MakeGenericMethod(typeof(ObjType));
これで、適切Anyな方法が得られるはずです。それで何をするのかは明確ではありません。