CreateMetaContext() private method

private CreateMetaContext ( ) : DynamicMetaObject
return System.Dynamic.DynamicMetaObject
Example #1
0
            public static DynamicMetaObject/*!*/ Bind(RubyContext/*!*/ context, InvokeBinder/*!*/ binder,
                RubyMetaObject/*!*/ target, DynamicMetaObject/*!*/[]/*!*/ args, Action<MetaObjectBuilder, CallArguments>/*!*/ buildInvoke) {

                RubyCallSignature callSignature;
                if (RubyCallSignature.TryCreate(binder.CallInfo, out callSignature)) {
                    return binder.FallbackInvoke(target, args);
                }

                var metaBuilder = new MetaObjectBuilder();
                buildInvoke(metaBuilder, new CallArguments(target.CreateMetaContext(), target, args, callSignature));
                return metaBuilder.CreateMetaObject(binder);
            }
Example #2
0
            public static DynamicMetaObject /*!*/ Bind(InvokeBinder /*!*/ binder,
                                                       RubyMetaObject /*!*/ target, DynamicMetaObject /*!*/[] /*!*/ args, Action <MetaObjectBuilder, CallArguments> /*!*/ buildInvoke)
            {
                RubyCallSignature callSignature;

                if (RubyCallSignature.TryCreate(binder.CallInfo, out callSignature))
                {
                    return(binder.FallbackInvoke(target, args));
                }

                var callArgs    = new CallArguments(target.CreateMetaContext(), target, args, callSignature);
                var metaBuilder = new MetaObjectBuilder(target, args);

                buildInvoke(metaBuilder, callArgs);
                return(metaBuilder.CreateMetaObject(binder));
            }