/// <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); }
/// <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); }