Tag: 动态代码

如何在运行时计算表达式参数?

我需要解决的问题是通过IF语句运行数据。 IF语句由运行时的SQL表生成。 我已经设法通过使用表达式和Lambda表达式来完成此操作。 我的表有memberName; 操作; 目标。 所以例如我从表中得到“Age”,“GreaterThan”和“40”,然后我编译它。 var rule = new Rule(rowRule[“memberName”].ToString(), rowRule[“Operator”].ToString(), rowRule[“Target”].ToString()); Func compiledRule = CompileRule(rule); 我得到一个真或假的价值,它完美无缺。 public static Func CompileRule(Rule r) { var paramUser = Expression.Parameter(typeof(User)); Expression expr = BuildExpr(r, paramUser); // build a lambda function User->bool and compile it return Expression.Lambda<Func>(expr, paramUser).Compile(); } static Expression BuildExpr(Rule r, ParameterExpression param) { var […]