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