/// <summary> /// Publishes a message to the queue using the QueueName as the routingKey. /// </summary> /// <typeparam name="T">The type of the message object.</typeparam> /// <param name="msg">The message.</param> /// <param name="exchange">[Optional] The exchange name.</param> /// <param name="delayMilliseconds">[Optional] The delay milliseconds before the message is available in the queue.</param> private void PublishMessage <T> (T msg, string exchange, string queueName, int delayMilliseconds) { // set persistent property IBasicProperties basicProperties = null; if (_publishPersistent) { if (basicProperties == null) { basicProperties = ConsumerChannel.CreateBasicProperties(); } basicProperties.Persistent = _publishPersistent; } if (_retryDelayMilliseconds > 0) { if (basicProperties == null) { basicProperties = ConsumerChannel.CreateBasicProperties(); } basicProperties.AddHeader("x-delay", _retryDelayMilliseconds); } // publish message PublishChannel.BasicPublish(exchange: exchange ?? "", routingKey: queueName, basicProperties: basicProperties, body: GetMessageContent(msg)); }