Как лучше регистрировать коллекцию зависимостей?



Представим, что вам нужно внедрить коллекцию из сервисов типа IMyService. Тогда вы ожидаете её вот так:



class MyOtherService : IMyOtherService

{

public MyOtherService(IEnumerable<IMyService> myServices)

{

//...

}

}




Что приходит на ум?



▪️Создать свою кастомную коллекцию, и зарегистрировать её.



▪️Буквально зарегистрировать объект списка или массива с набором нужных зависимостей



Однако можно поступить гораздо проще и просто регистрировать зависимости как обычно. Например:



services.AddScoped<IMyService, MyService>();




DI контейнер всё поймёт и даже если будет зарегистрирована всего одна реализация, она будет представлена в коллекции.