IRoutingKey[] IAddressFinder.Find(AddressFinderSource source, IAddressFinderDiagnostics diagnostics) { AddressFinderHelper.ThrowIfNull(source, diagnostics); List <IRoutingKey> list = new List <IRoutingKey>(); if (!source.Headers.IsNullOrEmpty()) { IRoutingKey routingKey = RoutingHintAddressFinder.FindByTargetServer(source.Headers[WellKnownHeader.XTargetServer], diagnostics); if (routingKey != null) { list.Add(routingKey); } else { IRoutingKey[] collection = RoutingHintAddressFinder.FindByAnchorMailbox(source.Headers[WellKnownHeader.AnchorMailbox], diagnostics); if (!collection.IsNullOrEmpty()) { list.AddRange(collection); } } } if (list.Count == 0) { return(AddressFinderHelper.EmptyRoutingKeyArray); } return(list.ToArray()); }