internal static IEnumerable <ITarget> FetchAllCompatibleTargetsInternal(this IRootTargetContainer rootContainer, Type serviceType) { return(rootContainer.FetchAll(serviceType) .Concat(rootContainer.GetKnownCompatibleTypes(serviceType) .SelectMany(compatibleType => rootContainer.FetchAll(compatibleType) .Select(t => VariantMatchTarget.Wrap(t, serviceType, compatibleType)) )).Distinct(TargetIdentityComparer.Instance)); }