Castle.Facilities.WcfIntegration.InMemoryServiceCatalog.MatchTargets C# (CSharp) Method

MatchTargets() private method

private MatchTargets ( FindCriteria criteria ) : IEnumerable
criteria System.ServiceModel.Discovery.FindCriteria
return IEnumerable
		private IEnumerable<EndpointDiscoveryMetadata> MatchTargets(FindCriteria criteria)
		{
			var collected = new HashSet<EndpointDiscoveryMetadata>(ReferenceEqualityComparer<EndpointDiscoveryMetadata>.Instance);

			foreach (var policy in policies)
			{
				while (collected.Count < criteria.MaxResults)
				{
					var target = policy.ChooseTarget(criteria);
					if (target == null || collected.Add(target) == false)
						break;
				}

				if (collected.Count >= criteria.MaxResults)
					break;
			}

			return collected;
		}
    }