/// <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)); }
/// <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; }