Mono.CSharp.DynamicMemberBinder.CreateCallSiteBinder C# (CSharp) Method

CreateCallSiteBinder() protected method

protected CreateCallSiteBinder ( ResolveContext ec, Arguments args, bool isSet ) : Mono.CSharp.Expression
ec ResolveContext
args Arguments
isSet bool
return Mono.CSharp.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 (name, loc)));
			binder_args.Add (new Argument (new TypeOf (new TypeExpression (ec.CurrentType, loc), 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);
		}
	}