/// <summary>
        /// Configures Rebus to use Azure Service Bus to transport messages as a one-way client (i.e. will not be able to receive any messages)
        /// </summary>
        public static AzureServiceBusTransportClientSettings UseAzureServiceBusAsOneWayClient(this StandardConfigurer <ITransport> configurer, string connectionString)
        {
            var settingsBuilder = new AzureServiceBusTransportClientSettings();

            configurer
            .OtherService <AzureServiceBusTransport>()
            .Register(c =>
            {
                var cancellationToken         = c.Get <CancellationToken>();
                var rebusLoggerFactory        = c.Get <IRebusLoggerFactory>();
                var asyncTaskFactory          = c.Get <IAsyncTaskFactory>();
                var azureServiceBusNameHelper = c.Get <AzureServiceBusNameHelper>();

                return(new AzureServiceBusTransport(
                           connectionString: connectionString,
                           queueName: null,
                           rebusLoggerFactory: rebusLoggerFactory,
                           asyncTaskFactory: asyncTaskFactory,
                           azureServiceBusNameHelper: azureServiceBusNameHelper,
                           cancellationToken: cancellationToken
                           ));
            });

            RegisterServices(configurer, () => settingsBuilder.LegacyNamingEnabled);

            OneWayClientBackdoor.ConfigureOneWayClient(configurer);

            return(settingsBuilder);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Configures Rebus to use Azure Service Bus to transport messages as a one-way client (i.e. will not be able to receive any messages)
        /// </summary>
        public static AzureServiceBusTransportClientSettings UseAzureServiceBusAsOneWayClient(this StandardConfigurer <ITransport> configurer, string connectionString, ITokenProvider tokenProvider = null)
        {
            var settingsBuilder = new AzureServiceBusTransportClientSettings();

            configurer.OtherService <Options>().Decorate(c =>
            {
                var options = c.Get <Options>();
                options.ExternalTimeoutManagerAddressOrNull = AzureServiceBusTransport.MagicDeferredMessagesAddress;
                return(options);
            });

            configurer
            .OtherService <AzureServiceBusTransport>()
            .Register(c =>
            {
                var cancellationToken  = c.Get <CancellationToken>();
                var rebusLoggerFactory = c.Get <IRebusLoggerFactory>();
                var asyncTaskFactory   = c.Get <IAsyncTaskFactory>();
                var nameFormatter      = c.Get <INameFormatter>();

                var transport = new AzureServiceBusTransport(
                    connectionString: connectionString,
                    queueName: null,
                    rebusLoggerFactory: rebusLoggerFactory,
                    asyncTaskFactory: asyncTaskFactory,
                    nameFormatter: nameFormatter,
                    cancellationToken: cancellationToken,
                    tokenProvider: tokenProvider
                    );

                transport.MaximumMessagePayloadBytes = settingsBuilder.MaximumMessagePayloadBytes;

                return(transport);
            });

            RegisterServices(configurer, () => settingsBuilder.LegacyNamingEnabled);

            OneWayClientBackdoor.ConfigureOneWayClient(configurer);

            return(settingsBuilder);
        }