Пример #1
0
        /// <summary>
        /// 调用远程方法
        /// </summary>
        /// <param name="methodName">远程方法名</param>
        /// <param name="args">远程方法使用的参数</param>
        protected void InvokeMethod(string methodName, params object[] args)
        {
            //创建调用方法信息
            var invokeMessage = new ApInvokeMessage
            {
                ServiceClassName = _serviceClassName,
                HasReturn = false,
                MethodName = methodName,
                Parameters = args
            };

            //创建消息并发送
            _serverConsumer.SendMessage(SerializeHelper.SerializeObject(invokeMessage));
        }
Пример #2
0
        /// <summary>
        /// 调用远程方法并获取返回值
        /// </summary>
        /// <param name="methodName">远程方法名</param>
        /// <param name="args">远程方法使用的参数</param>
        /// <returns>远程方法返回的值</returns>
        protected object InvokeMethodAndResult(string methodName, params object[] args)
        {
            //调用方法信息
            var invokeMessage = new ApInvokeMessage
            {
                ServiceClassName = _serviceClassName,
                HasReturn = true,
                MethodName = methodName,
                Parameters = args
            };

            //创建消息并发送然后阻塞等候回复消息
            ApInvokeReturnMessage objRet = _serverConsumer.SendMessageForResponse(SerializeHelper.SerializeObject(invokeMessage)) as ApInvokeReturnMessage;
            if (objRet.ReturnValue != null)
                return objRet.ReturnValue;
            else
                throw objRet.RemoteException;
        }