Exemple #1
0
        public virtual void Publish <T>(IExchange exchange, string routingKey, IMessage <T> message, Action <IAdvancedPublishConfiguration> configure)
        {
            if (exchange == null)
            {
                throw new ArgumentNullException("exchange");
            }
            if (routingKey == null)
            {
                throw new ArgumentNullException("routingKey");
            }
            if (message == null)
            {
                throw new ArgumentNullException("message");
            }
            if (configure == null)
            {
                throw new ArgumentNullException("configure");
            }

            var typeName    = advancedBus.SerializeType(typeof(T));
            var messageBody = advancedBus.Serializer.MessageToBytes(message.Body);

            message.Properties.Type          = typeName;
            message.Properties.CorrelationId =
                string.IsNullOrEmpty(message.Properties.CorrelationId) ?
                advancedBus.GetCorrelationId() :
                message.Properties.CorrelationId;

            Publish(exchange, routingKey, message.Properties, messageBody, configure);
        }
        public virtual void Publish <T>(IExchange exchange, string routingKey, IMessage <T> message, Action <IAdvancedPublishConfiguration> configure) where T : class
        {
            Preconditions.CheckNotNull(exchange, "exchange");
            Preconditions.CheckNotNull(routingKey, "routingKey");
            Preconditions.CheckNotNull(message, "message");
            Preconditions.CheckNotNull(configure, "configure");

            var typeName    = advancedBus.SerializeType(typeof(T));
            var messageBody = advancedBus.Serializer.MessageToBytes(message.Body);

            message.Properties.Type          = typeName;
            message.Properties.CorrelationId =
                string.IsNullOrEmpty(message.Properties.CorrelationId) ?
                advancedBus.GetCorrelationId() :
                message.Properties.CorrelationId;

            Publish(exchange, routingKey, message.Properties, messageBody, configure);
        }