protected override string GetSessionIdFromMessage(AmpMessage message) { if (message.Code == 0) { if (message != null) { var rspTemp = ProtobufObjectFactory.GetResponseTemplate(message.ServiceId, message.MessageId); if (rspTemp == null) { return(base.GetSessionIdFromMessage(message)); } if (message.Data != null) { rspTemp.MergeFrom(message.Data); } //提取内部的return_code 字段 var field_sessionId = rspTemp.Descriptor.FindFieldByName(Constants.SEESIONID_FIELD_NAME); if (field_sessionId != null) { var ObjV = field_sessionId.Accessor.GetValue(rspTemp); if (ObjV != null) { return(ObjV.ToString()); } } } } return(base.GetSessionIdFromMessage(message)); }
protected override string MessageToJson(AmpMessage message) { if (message.Code == 0) { var return_code = 0; var return_message = ""; string ret = ""; if (message != null) { var rspTemp = ProtobufObjectFactory.GetResponseTemplate(message.ServiceId, message.MessageId); if (rspTemp == null) { return(ret); } if (message.Data != null) { rspTemp.MergeFrom(message.Data); } //提取内部的return_code 字段 var field_code = rspTemp.Descriptor.FindFieldByName("return_code"); if (field_code != null) { var retObjV = field_code.Accessor.GetValue(rspTemp); if (retObjV != null) { if (!int.TryParse(retObjV.ToString(), out return_code)) { return_code = 0; } } } //提取return_message var field_msg = rspTemp.Descriptor.FindFieldByName("return_message"); if (field_msg != null) { var retObjV = field_msg.Accessor.GetValue(rspTemp); if (retObjV != null) { return_message = retObjV.ToString(); } } ret = AmpJsonFormatter.Format(rspTemp); } return("{\"return_code\":0,\"return_message\":\"\",data:" + ret + "}"); } else { return("{\"return_code\":" + message.Code + ",\"return_message\":\"\"}"); } }