public string GetProcedureUri(MethodInfo method)
        {
            if (!mMethodToProcedureUri.TryGetValue(method, out string result))
            {
                result = mUnderlying.GetProcedureUri(method);
                mMethodToProcedureUri[method] = result;
            }

            return(result);
        }
        protected override IWampCancellableInvocationProxy Invoke(ICalleeProxyInterceptor interceptor, IWampRawRpcOperationClientCallback callback, MethodInfo method, object[] arguments)
        {
            CallOptions callOptions  = interceptor.GetCallOptions(method);
            var         procedureUri = interceptor.GetProcedureUri(method);

            return(mCatalogProxy.Invoke(callback,
                                        callOptions,
                                        procedureUri,
                                        arguments));
        }
示例#3
0
        private SyncCallback <T> InnerInvokeSync <T>(ICalleeProxyInterceptor interceptor, MethodInfo method, IOperationResultExtractor <T> extractor, object[] arguments, Type unwrapped)
        {
            MethodInfoHelper methodInfoHelper = new MethodInfoHelper(method);

            string procedureUri = interceptor.GetProcedureUri(method);

            SyncCallback <T> syncCallback = new SyncCallback <T>(procedureUri, methodInfoHelper, arguments, extractor);

            object[] argumentsToSend =
                methodInfoHelper.GetInputArguments(arguments);

            Invoke(interceptor, syncCallback, method, argumentsToSend);

            return(syncCallback);
        }