/// <summary>
        /// Sets the address of the Subscription Service which routes messages to multiple subscribers
        /// from a single publisher.  The address of the Subscription Service is used by both
        /// publishers and subscribers, while routing is carried out by MassTransit.RuntimeServices
        /// </summary>
        public static void UseSubscriptionService(this SqlConfigurator configurator,
                                                  Action <SubscriptionClientConfigurator> configureCallback)
        {
            var clientConfigurator = new SubscriptionClientConfiguratorImpl();

            configureCallback(clientConfigurator);

            var routerBuilderConfigurator = new SubscriptionRouterBuilderConfiguratorImpl(x => x.SetNetwork(null));

            configurator.Configurator.AddSubscriptionRouterConfigurator(routerBuilderConfigurator);

            configurator.Configurator.AddSubscriptionObserver(clientConfigurator.Create);
        }
        /// <summary>
        /// Use MSMQ, and allow the configuration of additional options, such as Multicast or SubscriptionService usage
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="configurator"></param>
        /// <param name="callback"></param>
        /// <returns></returns>
        public static ServiceBusConfigurator UseSql(this ServiceBusConfigurator configurator,
                                                    Action <SqlConfigurator> callback)
        {
            var sqlConfigurator = new SqlConfigurator(configurator);


            configurator.AddTransportFactory <SqliteTransportFactory>(factory =>
            {
                factory.ConnectionStringResolver = sqlConfigurator.ConnectionStringResolver;
                factory.Factories = sqlConfigurator.Factories;
            });

            configurator.AddTransportFactory <MsSqlTransportFactory>(factory =>
            {
                factory.ConnectionStringResolver = sqlConfigurator.ConnectionStringResolver;
                factory.Factories = sqlConfigurator.Factories;
            });

            callback(sqlConfigurator);

            return(configurator);
        }