public AzureServicebusTransport(ILogger logger, AzureServicebusTransportConfiguration configuration)
 {
     _logger = logger;
     _configuration = configuration;
     _queues = new ConcurrentDictionary<Type, QueueClient>();
     _topics = new ConcurrentDictionary<Type, TopicClient>();
     _subscriptions = new ConcurrentDictionary<Type, SubscriptionClient>();
 }
        /// <summary>
        ///     Use Microsoft Azure Servicebus as a Transport layer
        /// </summary>
        /// <param name="configuration"></param>
        /// <param name="configure"></param>
        /// <returns>Bus configuration.</returns>
        public static BusBuilderConfiguration.Config WithAzureTransport(this BusBuilderConfiguration.Config configuration, Action<AzureServicebusTransportConfiguration> configure = null)
        {
            var config = new AzureServicebusTransportConfiguration();

            configure?.Invoke(config);

            return configuration
                .WithTransport(new AzureServicebusTransport(configuration.Logger, config));
        }