Разрешить все зарегистрированные службы в единый интерфейс из контейнера ASP. NET Core IO C - PullRequest
1 голос
/ 27 апреля 2020

Встроенный механизм внедрения основных зависимостей ASP. NET позволяет иметь несколько регистраций служб для одного и того же типа интерфейса:

    public void ConfigureServices(IServiceCollection services)
    {
        ...                   
        services.AddScoped<ICustomService, CustomService1>();
        services.AddScoped<ICustomService, CustomService2>();
        services.AddScoped<ICustomService, CustomService3>();
        ...
    }

В то время как последняя зарегистрированная служба получает приоритет при запросе Служба разрешена:

public MyController(ICustomService myService) { }

Я брожу, как я могу получить полный список зарегистрированных служб данного типа в моем конструкторе контроллера, например. ICustomService

1 Ответ

2 голосов
/ 27 апреля 2020

Сделать аргумент конструктора коллекцией

public class MyController
{
    public MyController(IEnumerable<ICustomService> myServices) { }
}
...