反映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
(或传递null
) Func
其中Foo
是声明func
的类型。
然而!!! 请注意,在创建lambda表达式方面,使用Func
在很大程度上没有意义; lambda表达式很少使用委托 。