[英]How do I create a lambda expression of type Expression.Lambda<Action<Controller>>? dynamically
I am trying to create a lambda expression of type Expression.Lambda<Action<Controller>>
dynamically. 我正在尝试动态创建类型为Expression.Lambda<Action<Controller>>
的lambda表达式。
For instance: x => x.Index()
例如: x => x.Index()
var body = ???
Expression<Action<Controller>> action = Expression.Lambda<Action<Controller>>(body);
I have the controller type (Type) and the controller action (MemberInfo). 我有控制器类型(类型)和控制器动作(MemberInfo)。
If I understand your question correctly, you would do it using Expression.Call()
. 如果我正确理解了您的问题,则可以使用Expression.Call()
。 Something like: 就像是:
Expression<Action<T>> CreateCallExpression<T>(MethodInfo method)
{
var parameter = Expression.Parameter(typeof(T), "x");
return Expression.Lambda<Action<T>>(
Expression.Call(parameter, method), parameter);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.