.Net Core - Как создать несколько экземпляров класса с внедрением зависимостей - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть особый сценарий, в котором мне нужно создать несколько экземпляров класса с внедрением зависимостей.

foreach (var setting in settings)
        {
            var client = new ServiceClient();
            dict.Add(somekey, client);
        }

Конструктор класса ServiceClient реализовал DI для других зависимых классов.Как создать экземпляр класса ServiceClient?

1 Ответ

0 голосов
/ 05 апреля 2019

Вы можете ввести IServiceProvider , чтобы получить службу с помощью метода GetService"через код".

Служба для внедрения должна быть временной, чтобы получать новый экземпляр каждый раз, когда вы запрашиваете услугу у поставщика услуг. Если внедряемая служба имеет ограниченный срок службы, вы должны создать новую область вокруг кода, чтобы получить новую службу.

var service = serviceProvider.GetService<IService>();

Рассмотрите возможность использования заводского метода в зависимости от вашего варианта использования.

...