ICSharpCode.NRefactory.MonoCSharp.DynamicMemberBinder.CreateCallSiteBinder C# (CSharp) Method

CreateCallSiteBinder() protected method

protected CreateCallSiteBinder ( ICSharpCode.NRefactory.MonoCSharp.ResolveContext ec, Arguments args, bool isSet ) : Expression
ec ICSharpCode.NRefactory.MonoCSharp.ResolveContext
args Arguments
isSet bool
return System.Linq.Expressions.Expression
		protected override Expression CreateCallSiteBinder (ResolveContext ec, Arguments args, bool isSet)
		{
			Arguments binder_args = new Arguments (4);

			binder_args.Add (new Argument (new BinderFlags (flags, this)));
			binder_args.Add (new Argument (new StringLiteral (ec.BuiltinTypes, name, loc)));
			binder_args.Add (new Argument (new TypeOf (ec.CurrentType, loc)));
			binder_args.Add (new Argument (new ImplicitlyTypedArrayCreation (args.CreateDynamicBinderArguments (ec), loc)));

			isSet |= (flags & CSharpBinderFlags.ValueFromCompoundAssignment) != 0;
			return new Invocation (GetBinder (isSet ? "SetMember" : "GetMember", loc), binder_args);
		}
	}