protected internal override void Setup(FeatureConfigurationContext context)
{
var inboundTransport = context.Settings.Get<InboundTransport>();
context.Settings.Get<QueueBindings>().BindReceiving(context.Settings.LocalAddress());
var instanceSpecificQueue = context.Settings.InstanceSpecificQueue();
if (instanceSpecificQueue != null)
{
context.Settings.Get<QueueBindings>().BindReceiving(instanceSpecificQueue);
}
var lazyReceiveConfigResult = new Lazy<TransportReceiveInfrastructure>(() => inboundTransport.Configure(context.Settings));
context.Container.ConfigureComponent(b => lazyReceiveConfigResult.Value.MessagePumpFactory(), DependencyLifecycle.InstancePerCall);
context.Container.ConfigureComponent(b => lazyReceiveConfigResult.Value.QueueCreatorFactory(), DependencyLifecycle.SingleInstance);
context.RegisterStartupTask(new PrepareForReceiving(lazyReceiveConfigResult));
}