0

タイプのラムダ式をExpression.Lambda<Action<Controller>>動的に作成しようとしています。

例えば: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 に答える