protected override object[] GetMethodParameters <TMessage>(IWampRawRpcOperationRouterCallback caller, IWampFormatter <TMessage> formatter, TMessage[] arguments, IDictionary <string, TMessage> argumentsKeywords) { object[] argumentsWithoutProgress = base.GetMethodParameters(caller, formatter, arguments, argumentsKeywords); int length = argumentsWithoutProgress.Length + 1; object[] result = new object[length]; Array.Copy(argumentsWithoutProgress, result, argumentsWithoutProgress.Length); result[length - 1] = new CallerProgress <T>(caller); return(result); }
protected override object[] GetMethodParameters <TMessage>(IWampRawRpcOperationRouterCallback caller, CancellationToken cancellationToken, IWampFormatter <TMessage> formatter, TMessage[] arguments, IDictionary <string, TMessage> argumentsKeywords) { IEnumerable <object> parameters = UnpackParameters(formatter, arguments, argumentsKeywords); CallerProgress progress = new CallerProgress(caller, this); parameters = parameters.Concat(progress); if (SupportsCancellation) { parameters = parameters.Concat(cancellationToken); } object[] result = parameters.ToArray(); return(result); }