如何使用 Type.GetMethod() 来获取带有 lambda 参数的方法?我正在尝试使用以下方法获取类似 Func 的参数的 Queryable.Any 方法:
typeof(Queryable).GetMethod("Any", new Type[]{typeof(Func<ObjType, bool>)})
但它一直返回null。
有四点不对:
Queryable.Any
-的第一个参数IQueryable<T>
Func<ObjType, bool>
which 是委托类型,而不是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
方法。目前尚不清楚您将如何处理它。