我正在尝试动态创建Expression.Lambda<Action<Controller>>
类型的lambda表达式。
例如:x => x.Index()
var body = ???
Expression<Action<Controller>> action = Expression.Lambda<Action<Controller>>(body);
我有控制器类型(Type)和控制器动作(MemberInfo)。
答案 0 :(得分:1)
如果我正确理解您的问题,您可以使用Expression.Call()
进行操作。类似的东西:
Expression<Action<T>> CreateCallExpression<T>(MethodInfo method)
{
var parameter = Expression.Parameter(typeof(T), "x");
return Expression.Lambda<Action<T>>(
Expression.Call(parameter, method), parameter);
}