Как создать ServiceCollection из ServiceProvider?
Краткий ответ: Вы не можете из коробки
Один разпоставщик услуг построен, любые изменения в наборе услуг не влияют на поставщика.
Класс ServiceProvider
, который в конечном итоге создается, не предоставляет никакого способа получить коллекцию, которая использовалась для его создания.
Я бы посоветовал вам просто сохранить ссылку на исходную коллекцию и создать нового поставщика по мере необходимости, если в исходную коллекцию были внесены изменения.
В противном случае вам потребуется создать собственную IServiceProviderFactory<TContainerBuilder>
Предоставляет точку расширения для создания конструктора, специфичного для контейнера, и IServiceProvider
.
, который обладает желаемой функциональностью.