Provides an Autofac container adapter for Rebus.
Use the Autofac container adapter like this:
var builder = new ContainerBuilder();
builder.RegisterRebus((configurer, context) => configurer
.Logging(l => l.Serilog())
.Transport(t => t.UseRabbitMq(...))
.Options(o => {
o.SetNumberOfWorkers(2);
o.SetMaxParallelism(30);
}));
// the bus is registered now, but it has not been started.... make all your other registrations, and then:
var container = builder.Build(); //< start the bus
// now your application is running
// ALWAYS do this when your application shuts down:
container.Dispose();
It will automatically register the following services in Autofac:
IBus
– this is the bus singletonIMessageContext
– this is the current message context – can be injected into Rebus message handlers and everything resolved at the time of receiving a new messageISyncBus
– this is the synchronous bus instance – can be used in places, where aTask
-based asynchronous API is not desired, e.g. from deep within ASP.NET or WPF applications, which would deadlock if you went.Wait()
on aTask