IEnumerable <UnicastRoutingTarget> IUnicastRoute.Resolve(Func <Endpoint, IEnumerable <EndpointInstance> > instanceResolver) { if (physicalAddress != null) { yield return(UnicastRoutingTarget.ToTransportAddress(physicalAddress)); } else if (instance != null) { yield return(UnicastRoutingTarget.ToEndpointInstance(instance)); } else { var instances = instanceResolver(endpoint); foreach (var i in instances) { yield return(UnicastRoutingTarget.ToEndpointInstance(i)); } } }