Для обычного случая, как управлять одноразовыми материалами, например Как правильно и безопасно утилизировать экземпляры синглетонов, зарегистрированные в контейнере, когда ASP. NET Основное приложение выключается объясняет, как это сделать .
Но у меня немного другой случай - у меня нет ни одного экземпляра какого-то работника IFoo
, как здесь:
interface IFoo : IDisposable // not my case
, который вы знаете, как распоряжаться, просто позвоните Dispose
на экземпляре IFoo
.
Нет, мой IFoo
равен , а не IDisposable
:
interface IFoo // my case
вместо одного экземпляра, я есть пара экземпляров при создании - (IFoo,IDisposable)
. Когда мне приходится выполнять настоящую работу, я использую первый элемент, потому что там есть все логи c, когда я закончу, я вызываю Dispose
для второго элемента.
Можно сказать, что это развязка ставится на крайние значения.
И когда я нахожусь на ASP. NET Core, у меня проблемы с DI - у меня есть пара, подобная выше, я могу зарегистрировать IFoo
с, например, services.AddScoped
, но как сказать services
, что под рукой есть отдельное / отдельное IDisposable
, которое следует утилизировать, когда работа завершена и область действия исчезла?