Пример #1
0
        public static void UseRabbitMqRouting(this ServiceBusConfigurator configurator)
        {
            configurator.SetSubscriptionObserver((bus, coordinator) => new RabbitMqSubscriptionBinder(bus));

            var busConfigurator = new PostCreateBusBuilderConfigurator(bus =>
            {
                var interceptorConfigurator = new OutboundMessageInterceptorConfigurator(bus.OutboundPipeline);

                interceptorConfigurator.Create(new PublishEndpointInterceptor(bus));
            });

            configurator.AddBusConfigurator(busConfigurator);

            configurator.UseRabbitMq();
        }
        /// <summary>
        /// Specifies that RabbitMQ should be added as a transport for the service bus.
        /// </summary>
        /// <param name="configurator"></param>
        /// <returns></returns>
        public static ServiceBusConfigurator UseRabbitMq(this ServiceBusConfigurator configurator)
        {
            configurator.SetSubscriptionObserver((bus, coordinator) => new RabbitMqSubscriptionBinder(bus));

            var busConfigurator = new PostCreateBusBuilderConfigurator(bus =>
            {
                var interceptorConfigurator = new OutboundMessageInterceptorConfigurator(bus.OutboundPipeline);

                // make sure we publish correctly through this interceptor; works on the outgoing pipeline
                interceptorConfigurator.Create(new PublishEndpointInterceptor(bus));
            });

            configurator.AddBusConfigurator(busConfigurator);

            return(UseRabbitMq <ServiceBusConfigurator>(configurator));
        }
        /// <summary>
        /// Specifies that RabbitMQ should be added as a transport for the service bus. Includes a callback
        /// that can configure additional settings on the transport, such as SSL.
        /// </summary>
        /// <param name="configurator"></param>
        /// <param name="configureFactory"></param>
        /// <returns></returns>
        public static void UseRabbitMq(this ServiceBusConfigurator configurator,
                                       Action <RabbitMqTransportFactoryConfigurator> configureFactory)
        {
            configurator.SetSubscriptionObserver((bus, coordinator) => new RabbitMqSubscriptionBinder(bus));

            var busConfigurator = new PostCreateBusBuilderConfigurator(bus =>
            {
                var interceptorConfigurator = new OutboundMessageInterceptorConfigurator(bus.OutboundPipeline);

                // make sure we publish correctly through this interceptor; works on the outgoing pipeline
                interceptorConfigurator.Create(new PublishEndpointInterceptor(bus));
            });

            configurator.AddBusConfigurator(busConfigurator);

            UseRabbitMq((EndpointFactoryConfigurator)configurator, configureFactory);
        }