如何评估InstanceMethodCallExpressionN

问题描述 投票:0回答:1

如何评估此二进制表达式的左侧?

Expression<Func<Person, bool>> expr = (x) => x.Birthday.AddMinutes(1) > DateTime.UtcNow;

如果我打电话

System.Linq.Expressions.Expression.Lambda(expr.Left).Compile().DynamicInvoke() 

我收到错误消息“从作用域”引用的类型为'...'的变量'x',但未定义”

要清楚,我想获取x.Birthday.AddMinutes(1)的值,它是InstanceMethodCallExpressionN

c# linq expression-trees
1个回答
0
投票
Expression.Lambda(((BinaryExpression)expr.Body).Left, expr.Parameters).Compile().DynamicInvoke(new Person() { Birthday = DateTime.Now})
© www.soinside.com 2019 - 2024. All rights reserved.