[英]Execute method with Action<T> argument using Reflection
如何创建Action方法用作以下函数的参数?
public void When(Action<T> action)
{
if (internalValue != null)
action(internalValue);
}
我在方法上有MethodInfo,参数类型如下:
var methods = value.GetType().GetMethods();
MethodInfo mInfo = methods.First(method => method.Name == "When");
Type parameterType = (mInfo.GetParameters()[0]).ParameterType;
但是在那之后,我不知道如何使实际的Action方法作为参数传递,我也不知道如何定义Action方法的主体。
mInfo.Invoke(value,
delegate(<TheRuntimeTypeOf T> aTinstance)
{
// do something on a T
});
但是请记住,您正在失去通用性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.