Как лучше регистрировать коллекцию зависимостей?
Представим, что вам нужно внедрить коллекцию из сервисов типа
Что приходит на ум?
▪️Создать свою кастомную коллекцию, и зарегистрировать её.
▪️Буквально зарегистрировать объект списка или массива с набором нужных зависимостей
Однако можно поступить гораздо проще и просто регистрировать зависимости как обычно. Например:
DI контейнер всё поймёт и даже если будет зарегистрирована всего одна реализация, она будет представлена в коллекции.
Представим, что вам нужно внедрить коллекцию из сервисов типа
IMyService
. Тогда вы ожидаете её вот так:class MyOtherService : IMyOtherService
{
public MyOtherService(IEnumerable<IMyService> myServices)
{
//...
}
}
Что приходит на ум?
▪️Создать свою кастомную коллекцию, и зарегистрировать её.
▪️Буквально зарегистрировать объект списка или массива с набором нужных зависимостей
Однако можно поступить гораздо проще и просто регистрировать зависимости как обычно. Например:
services.AddScoped<IMyService, MyService>();
DI контейнер всё поймёт и даже если будет зарегистрирована всего одна реализация, она будет представлена в коллекции.