Example #1
0
 public static DynamicMetaObject /*!*/ Bind(DynamicMetaObject /*!*/ context, UnaryOperationBinder /*!*/ binder,
                                            DynamicMetaObject /*!*/ target, Func <DynamicMetaObject, DynamicMetaObject> /*!*/ fallback)
 {
     return(InvokeMember.Bind(context, RubyUtils.MapOperator(binder.Operation), _CallInfo, binder, target, DynamicMetaObject.EmptyMetaObjects,
                              (trgt, _) => fallback(trgt)
                              ));
 }
Example #2
0
 public static DynamicMetaObject /*!*/ Bind(DynamicMetaObject /*!*/ context, BinaryOperationBinder /*!*/ binder,
                                            DynamicMetaObject /*!*/ target, DynamicMetaObject /*!*/ arg,
                                            Func <DynamicMetaObject, DynamicMetaObject, DynamicMetaObject> /*!*/ fallback)
 {
     return(InvokeMember.Bind(context, RubyUtils.MapOperator(binder.Operation), _CallInfo, binder, target, new[] { arg },
                              (trgt, args) => fallback(trgt, args[0])
                              ));
 }
Example #3
0
            public override DynamicMetaObject /*!*/ FallbackInvokeMember(DynamicMetaObject /*!*/ target, DynamicMetaObject /*!*/[] /*!*/ args, DynamicMetaObject errorSuggestion)
            {
                if (_unmangled != null)
                {
                    // TODO: errorSuggestion ?
                    return(_unmangled.Bind(target, args));
                }

#if !SILVERLIGHT
                DynamicMetaObject result;
                if (Microsoft.Scripting.ComInterop.ComBinder.TryBindInvokeMember(this, target, InplaceConvertComArguments(args), out result))
                {
                    return(result);
                }
#endif
                return(FallbackInvokeMember(this, _originalName ?? Name, CallInfo, target, args, errorSuggestion));
            }