/// <summary> /// Initializes a new instance of the <see cref="MassTransitRabbitMqContext"/> class. /// </summary> /// <param name="options">The options.</param> /// <param name="configurator">The configurator.</param> /// <param name="serviceProvider">The service provider.</param> /// <param name="loggerFactory">The logger factory.</param> public MassTransitRabbitMqContext(IOptions <MassTransitRabbitMqHostingOptions> options, IMassTransitRabbitMqHostingConfigurator configurator, IServiceProvider serviceProvider, ILoggerFactory loggerFactory) { _configurator = configurator; _serviceProvider = serviceProvider; _logger = loggerFactory.CreateLogger <MassTransitRabbitMqContext>(); _loggerFactory = loggerFactory; _options = options.Value; _semaphore = new SemaphoreSlim(1, 1); _disposing = new CancellationTokenSource(); foreach (var s in configurator.GetConfigurationStrings()) { _logger.LogInformation(s); } }
/// <summary> /// Adds the MassTransit backed by RabbitMQ as a hosted service. /// </summary> /// <param name="services">The services.</param> /// <param name="applicationName">Name of the application.</param> /// <param name="options">The mass transit options.</param> /// <returns></returns> public static IMassTransitRabbitMqHostingBuilder AddMassTransitRabbitMqHostedService(this IServiceCollection services, string applicationName, MassTransitRabbitMqHostingOptions options) { return(services.AddMassTransitRabbitMqHostedService(applicationName, o => { o.RabbitMqUri = options.RabbitMqUri; o.RabbitMqUsername = options.RabbitMqUsername; o.RabbitMqPassword = options.RabbitMqPassword; })); }