2 using System.Collections.ObjectModel;
4 namespace System.Linq.Expressions
6 public sealed class InvocationExpression : Expression
9 internal InvocationExpression(Expression lambda, Type returnType, ReadOnlyCollection<Expression> arguments)
10 : base(ExpressionType.Invoke, returnType)
13 this.arguments = arguments;
18 private Expression lambda;
19 private ReadOnlyCollection<Expression> arguments;
23 public ReadOnlyCollection<Expression> Arguments
25 get { return arguments; }
28 public Expression Expression
30 get { return lambda; }
34 #region Internal Methods
35 internal override void BuildString(StringBuilder builder)
37 builder.Append("invoke(");
39 // build the lamba expression first
40 lambda.BuildString(builder);
42 int argc = arguments.Count;
43 for (int i = 0; i < argc; i++)
45 arguments[i].BuildString(builder);