protected object Invoke(object[] arguments) { var queuedArgSpecs = _argSpecificationDequeue.DequeueAllArgumentSpecificationsForMethod(MethodToInvoke); var call = _callFactory.Create(MethodToInvoke, arguments, this, queuedArgSpecs, _parameterInfos); var result = CallRouter.Route(call); return(EnsureResultCompatibleWithReturnType(result)); }