public DynamicMetaObject Invoke(TotemInvokeBinder totemInvoke, Expression codeContext, DynamicMetaObject target, DynamicMetaObject[] args) { return new FunctionBinderHelper(totemInvoke, this, codeContext, args).MakeMetaObject(); }
internal TotemInvokeBinder Invoke(CallSignature signature) { if (_invokeBinders == null) { Interlocked.CompareExchange( ref _invokeBinders, new Dictionary<CallSignature, TotemInvokeBinder>(), null ); } lock (_invokeBinders) { TotemInvokeBinder res; if (!_invokeBinders.TryGetValue(signature, out res)) _invokeBinders[signature] = res = new TotemInvokeBinder(this, signature); return res; } }