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) )); }
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]) )); }
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)); }