public BusRegistry()
{
For<IBusControl>(new SingletonLifecycle())
.Use(x => Bus.Factory.CreateUsingRabbitMq(ConfigureRabbit));
Forward<IBus, IBusControl>();
}
private void ConfigureRabbit(IRabbitMqBusFactoryConfigurator cfg)
{
Log4NetLogger.Use();
var hostAddress = new Uri("rabbitmq://10.0.0.1/");
var host = cfg.Host(hostAddress, ConfigureHost);
cfg.ReceiveEndpoint(host, "MainBus", ConfigureEndpoint);
}
private void ConfigureEndpoint(IRabbitMqReceiveEndpointConfigurator cfg)
{
//Register Handlers here
}
private static void ConfigureHost(IRabbitMqHostConfigurator cfg)
{
cfg.Username("username");
cfg.Password("password");
}
var hostAddress = new Uri("rabbitmq://10.0.0.1/");
For<IBusControl>(new SingletonLifecycle())
.Use(x => MassTransit.Bus.Factory.CreateUsingRabbitMq(sbs =>
{
var host = sbs.Host(hostAddress, h =>
{
h.Username("username");
h.Password("password");
});
sbs.ReceiveEndpoint(host, "MainBus", ep =>
{
ep.Consumer(() => new MessageHandler(
x.GetInstance<ISomeService>()));
});
})
);
It feels like I am missing something significant here, but can't think that I would be unable to inject a service into the handler.