예제 #1
0
        /// <summary>
        /// Visits an invocation expression tree node.
        /// </summary>
        /// <param name="node">Node to visit.</param>
        /// <returns>Result of visiting the node.</returns>
        protected internal virtual ExpressionSlim VisitInvocation(InvocationExpressionSlim node)
        {
            var expression = Visit(node.Expression);
            var arguments  = VisitArguments(node);

            if (expression != node.Expression || arguments != null)
            {
                return(node.Rewrite(expression, arguments));
            }

            return(node);
        }
예제 #2
0
        protected internal override ExpressionSlim VisitInvocation(InvocationExpressionSlim node)
        {
            Append("Invoke(");
            Visit(node.Expression);
            if (node.ArgumentCount > 0)
            {
                Append(", ");
                Visit(", ", node);
            }
            Append(')');

            return(node);
        }
 /// <summary>
 /// Visits an invocation expression slim tree node, produces an invocation expression.
 /// </summary>
 /// <param name="node">Node to visit.</param>
 /// <param name="expression">Function expression.</param>
 /// <param name="arguments">Argument expressions.</param>
 /// <returns>The invocation expression represented by the expression slim node.</returns>
 protected override Expression MakeInvocation(InvocationExpressionSlim node, Expression expression, ReadOnlyCollection <Expression> arguments)
 {
     return(_factory.Invoke(expression, arguments));
 }