public void Configure(TransportConfigurator configurator) { configurator.Container.Register(container => { return(Bus.Factory.CreateUsingRabbitMq(sbc => { var host = sbc.Host(configurator.Configuration["RabbitMQ:Host"], configurator.Configuration["RabbitMQ:VHost"], h => { h.Username(configurator.Configuration["RabbitMQ:User"]); h.Password(configurator.Configuration["RabbitMQ:Password"]); }); if (_consumers.Any()) { sbc.ReceiveEndpoint(host, configurator.Configuration["Heimdall:ServiceQ"], receiveConf => { _consumers.ForEach(act => act(receiveConf, container)); }); } } )); }) .As <IBusControl>() .As <IPublishEndpoint>() .As <ISendEndpointProvider>() .As <IBus>() .SingleInstance(); configurator.Container.RegisterModule(new RabbitModule(_routeRegistry)); }
public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); services.AddScoped <IHostedService, MqHostedService>(); var builder = new ContainerBuilder(); builder.Populate(services); builder.RegisterModule <AutofacModule>(); var configuredTransport = new TransportConfigurator(builder, _configuration) .WithAgent <RabbitMqConfigurationAgent>() .Configure(); return(new AutofacServiceProvider(configuredTransport.BuiltContainer)); }