private Expression VisitAll(Expression expression)
        {
            // Run all visitors in order
            var visitors = new ExpressionVisitor[] { this }.Concat(Visitors);

            return(visitors.Aggregate(expression, (expr, visitor) => visitor.Visit(expr)));
        }
Esempio n. 2
0
        private Expression VisitAllAndOptimize(Expression expression)
        {
            // Run all visitors in order
            var visitors = new ExpressionVisitor[] { this }.Concat(_visitors);

            var translated = visitors.Aggregate(expression, (expr, visitor) => visitor.Visit(expr));

            var optimized = OptimizeExpression(translated);

            return(optimized);
        }