反映MemberInfo到Func

我正在寻找一种方法将MemberInfo实例转换为“Func”类型(稍后通过lambda表达式使用它)。

让我们说我有一个类型的成员函数

 public bool func(int); 

使用reflection,我以某种方式得到MemberInfo “mi”的实例,现在我想将它转换为Func; 类型。 就像是:

 Func<int, bool f = myType.GetMember(mi.Name); 

有办法吗?

PS。 Marc Grawell的回答解决了我的问题,无需进一步评论

 Func f = Delegate.CreateDelegate( typeof(Func), target, (MethodInfo)mi); 

请注意, target是您要使用的对象 ,因为func是非static方法。 如果它是static方法,则可以省略(或传递null )。 或者,如果你将它Func ,你可以省略target (或传递nullFunc其中Foo是声明func的类型。

然而!!! 请注意,在创建lambda表达式方面,使用Func在很大程度上没有意义; lambda表达式很少使用委托