public static ICollection <Expression> Analyze(Expression expressionTree) { var visitor = new FindEvaluatableExpressionVisitor(); visitor.Visit(expressionTree); return(visitor._evaluatableExpressions); }
/// <summary> /// Takes an expression tree and finds and evaluates all its evaluatable subtrees. /// </summary> public static Expression Evaluate(Expression expressionTree) { var evaluatableExpressions = FindEvaluatableExpressionVisitor.Analyze(expressionTree); var visitor = new EvaluatingExpressionVisitor(expressionTree, evaluatableExpressions); return(visitor.Visit(expressionTree)); }