Создайте два сервиса, которые реализуют один и тот же интерфейс, используя фабрику - PullRequest
0 голосов
/ 31 января 2020

Нам нужно создать два разных сервиса, которые реализуют один и тот же интерфейс, а также нам нужно инициализировать каждый с некоторым параметром. В настоящее время у нас есть следующий код, который работает только для одного ImplementingService объекта ISomeInterface:

services.AddTransient<ISomeInterface, ImplementingService>();

services.AddSingleton<ImplementingServiceFactory>(sp => (parameter) => 
{
    var implementingService = implementingServiceDictionary.GetOrAdd(parameter, key =>
    {
        return sp.GetRequiredService<ISomeInterface>();
    });

    implementingService.InitService(parameter);

    return implementingService;
});

Нам нужно реорганизовать этот код, чтобы он мог работать с ImplementingService и ImplementingService2?

...