public void RegisterMsg(string msgID, AsyncRequestMessageBase obj)
 {
     lock (msgIDObjectDicLock)
     {
         msgIDObjectDic.Add(msgID, obj);
         //Console.WriteLine("[RegisterMsg][" + msgIDObjectDic.GetHashCode() + "][REQ][" + obj.msgID + "] " + obj.GetJson().Substring(0, 100));
     }
 }
 public bool SendRequest(AsyncRequestMessageBase obj, bool verbose = false)
 {
     if (obj.msgID == null)
         return false;
     string message = obj.GetJson();
     lock (senderLock)
     {
         var props = senderChannel.CreateBasicProperties();
         props.CorrelationId = obj.msgID;
         receiver.RegisterMsg(obj.msgID, obj);
         var messageBytes = QuickLZ.compress(Encoding.UTF8.GetBytes(message), 1);
         //var messageBytes = Encoding.UTF8.GetBytes(message);
         if (verbose)
             Console.WriteLine(DateTime.Now.ToString("[HH:mm:ss.fff]") + "rpccall start : " + message);
         senderChannel.BasicPublish(exchange: "",
                                 routingKey: senderQueueName,
                                 basicProperties: props,
                                 body: messageBytes
                                 );
     }
     return true;
 }