Exemple #1
0
 /// <summary>
 /// 命令消费
 /// </summary>
 /// <param name="reciveData"></param>
 private void Excute(ReciveData reciveData)
 {
     //将接受到数据反序列化成命令对象
     RequestCommand request;
     try
     {
         request = ByteUtil.ToDeserializeObject<RequestCommand>(reciveData.data.body);
     }
     catch (Exception e)
     {
         ResponseCommand response = new ResponseCommand()
         {
             errMsg = "序列化请求对象失败," + e.Message + "堆栈:" + e.StackTrace,
             statusCode = "440",
             info = ""
         };
         string data = ByteUtil.ToSerializeObject(response);
         reciveData.FinshCallBack(reciveData.sessionID, data,true);
         TraceManagerForCommand.AppendErrMsg(response.errMsg);
         return;
     }
     // 序列化检查
     if (request == null)
     {
         ResponseCommand response = new ResponseCommand()
         {
             errMsg = "序列化请求对象失败,",
             statusCode = "440",
             info = ""
         };
         string data = ByteUtil.ToSerializeObject(response);
         reciveData.FinshCallBack(reciveData.sessionID, data, true);
         TraceManagerForCommand.AppendErrMsg(response.errMsg);
         return;
     }
     // 将委托和会话ID传递给命令对象
     request.FinshCallBack = reciveData.FinshCallBack;
     request.sessionID = reciveData.sessionID;
     //命令记录
     TraceManagerForCommand.AppendDebug("已获取命令ID:"+ request.ID);
     // 让调度开始分发给对应的子服务
     this.DoRequestCommand(request);
 }