0

我正在尝试Expression.Lambda<Action<Controller>>动态创建类型的 lambda 表达式。

例如:x => x.Index()

var body = ???
Expression<Action<Controller>> action = Expression.Lambda<Action<Controller>>(body);

我有控制器类型 (Type) 和控制器操作 (MemberInfo)。

4

1 回答 1

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);
}
于 2012-10-14T15:26:16.830 回答