internal Receiving()
{
EnableByDefault();
Prerequisite(c => !c.Settings.GetOrDefault<bool>("Endpoint.SendOnly"), "Endpoint is configured as send-only");
Defaults(s =>
{
var transportInfrastructure = s.Get<TransportInfrastructure>();
var discriminator = s.GetOrDefault<string>("EndpointInstanceDiscriminator");
var baseQueueName = s.GetOrDefault<string>("BaseInputQueueName") ?? s.EndpointName();
var mainInstance = transportInfrastructure.BindToLocalEndpoint(new EndpointInstance(s.EndpointName()));
var mainLogicalAddress = LogicalAddress.CreateLocalAddress(baseQueueName, mainInstance.Properties);
s.SetDefault<LogicalAddress>(mainLogicalAddress);
var mainAddress = transportInfrastructure.ToTransportAddress(mainLogicalAddress);
s.SetDefault("NServiceBus.SharedQueue", mainAddress);
if (discriminator != null)
{
var instanceSpecificAddress = transportInfrastructure.ToTransportAddress(mainLogicalAddress.CreateIndividualizedAddress(discriminator));
s.SetDefault("NServiceBus.EndpointSpecificQueue", instanceSpecificAddress);
}
});
}