public override object InvokeResult(object rq, Func <Type, object> objectCtor) { var request = rq as RequestJsonMessage; var response = new ResponseJsonMessage(); try { var msgBase = new Core.Remoting.MessageBase() { Args = request.Args, Method = request.Method, Service = request.Service, Token = request.Token, ApiPrefix = request.ApiPrefix }; var errorInfo = InvokeMessage(msgBase, out object result, out Dictionary <int, object> outs, out string token, objectCtor); if (errorInfo != null) { return(ResponseJsonMessage.CreateError(errorInfo.msg, errorInfo.code)); } response.SetData(result); response.Success = true; response.Outs = outs; if (!string.IsNullOrEmpty(token))//登录方法后返回新TOKEN { response.Token = token; } } catch (Exception ex) { response.Success = false; response.Msg = ex.Message; Console.WriteLine(ex.ToString()); CRL.Core.EventLog.Log(ex.ToString(), request.Service); return(ResponseJsonMessage.CreateError(ex.Message + $" 在{request.Service}/{request.Method}", "500")); } return(response); }
public object InvokeResult2(IChannelHandlerContext ctx, object rq, Func <Type, object> getArgs = null) { var request = rq as RequestJsonMessage; var response = new ResponseJsonMessage(); try { var msgBase = new Core.Remoting.MessageBase() { Args = request.Args, Method = request.Method, Service = request.Service, Token = request.Token }; var errorInfo = InvokeMessage(msgBase, out object result, out Dictionary <int, object> outs, out string token, getArgs); if (errorInfo != null) { return(ResponseJsonMessage.CreateError(errorInfo.msg, errorInfo.code)); } response.SetData(result); response.Success = true; response.Outs = outs; if (!string.IsNullOrEmpty(token))//登录方法后返回新TOKEN { response.Token = token; var arry = response.Token.Split('@'); AddClient(ctx, arry[0]); } } catch (Exception ex) { response.Success = false; response.Msg = ex.Message; Console.WriteLine(ex.ToString()); CRL.Core.EventLog.Log(ex.ToString(), request.Service); return(ResponseJsonMessage.CreateError(ex.Message + $" 在{request.Service}/{request.Method}", "500")); } return(response); }