/// <summary> /// /// </summary> /// <param name="message"></param> /// <param name="inResponseTo"></param> /// <param name="routingKey"></param> /// <returns></returns> protected IMessageHeader SendMessageImpl(IMessage message, IMessageHeader inResponseTo = null, string routingKey = "") { lock (_oSendLock) { byte[] body = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(message)); _messageBasicProperties.Timestamp = new AmqpTimestamp(MessageHeader.UnixTimeNow()); _messageBasicProperties.Headers = new Dictionary <string, object>(); IMessageHeader header = inResponseTo != null ? new MessageHeader(inResponseTo) : new MessageHeader(); header.Populate(_messageBasicProperties.Headers); _model.BasicPublish(_exchangeName, routingKey, true, _messageBasicProperties, body); return(header); } }