При использовании метода generi c .AddSingleton<TService>()
(и .AddSingleton<TService, TImplementation>()
тип создается, контролируется и удаляется контейнером. Когда конструктор содержит другие зависимости, эти зависимости вводятся автоматически (метод, называемый «Автоматическое подключение»).
Экземпляры, предоставленные с использованием .AddSingleton<TService>(TService)
, уже существуют. В этом случае контейнер не будет избавляться от этого экземпляра, когда он реализует IDisposable
или IAsyncDisposable
. Вы сами несете ответственность за удаление этого экземпляра.
Поскольку .AddSingleton<TService>(TService)
поставляется с уже существующим экземпляром, контейнер не может внедрить какие-либо зависимости, потому что для этого он также должен создать экземпляр.