Я собираюсь сделать предположение, что IEnumerable<IQualifier>
может исходить из чего-то другого, чем сгенерированный / построенный список.
В этом случае вы можете создать интерфейс и реализацию, которая возвращает IEnumerable<IQualifier>
public interface IQualifiersProvider
{
IEnumerable<IQualifier> GetQualifiers();
}
public class QualifiersProvider : IQualifiersProvider
{
//from db / whatever
public IEnumerable<IQualifier> GetQualifiers()
{
return new [] {
new Qualifier(),
new Qualifier(),
}
}
}
Измените LinkQualifier
на зависимость от IQualifiersProvider
public class LinkQualifier : ILinkQualifier
{
private readonly IEnumerable<IQualifier> _qualifiers;
public LinkQualifier(IQualifiersProvider qualifiersProvider)
{
_qualifiers = qualifiersProvider.GetQualifiers();
}
public IQualifier Qualify(Uri uri)
{
return _qualifiers.FirstOrDefault(q => q.CanQualify(uri));
}
}
Теперь зарегистрируйте их отдельно
services.AddTransient<IQualifiersProvider, QualifiersProvider>();
services.AddTransient<ILinkQualifier, LinkQualifier>();