コード例 #1
0
        /// <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);
            }
        }