NServiceBus.UnicastSendRouter.Route C# (CSharp) Method

Route() public method

public Route ( Type messageType, IDistributionPolicy distributionPolicy ) : UnicastRoutingStrategy
messageType System.Type
distributionPolicy IDistributionPolicy
return UnicastRoutingStrategy
        public UnicastRoutingStrategy Route(Type messageType, IDistributionPolicy distributionPolicy)
        {
            var route = unicastRoutingTable.GetRouteFor(messageType);
            if (route == null)
            {
                return null;
            }

            if (route.PhysicalAddress != null)
            {
                return new UnicastRoutingStrategy(route.PhysicalAddress);
            }

            if (route.Instance != null)
            {
                return new UnicastRoutingStrategy(transportAddressTranslation(route.Instance));
            }


            var instances = endpointInstances.FindInstances(route.Endpoint).Select(e => transportAddressTranslation(e)).ToArray();
            var selectedInstanceAddress = distributionPolicy.GetDistributionStrategy(route.Endpoint, DistributionStrategyScope.Send).SelectReceiver(instances);
            return new UnicastRoutingStrategy(selectedInstanceAddress);
        }