У меня есть метод ApplyExpression:
public object ApplyExpression (object value, LambdaExpression expression)
{
object result = Expression.Lambda(expression).Compile().DynamicInvoke(value);
return result;
}
И вызов в первом случае:
DateTime dateTime = DateTime.Now;
var expression = Expression<Func<DateTime, DateTime>> expression = a => a.AddDays(1);
var date = ApplyExpression(dateTime, expression);
В этом случае значением является тип 'DateTime', а ExpressionBody является 'value.AddDays(1) '.
Это должно вернуть InputDate + 1 день.
Но оно выдает исключение:' Несоответствие количества параметров '.
Второй случай - это тип' string 'и значение ExpressionBody' + "1" ';
ОБНОВЛЕНИЕ Решено @elgonzo:
expression.Compile().DynamicInvoke(value);