Как корректно освобождать ресурсы в DI, если требуется асинхронный dispose?
Используйте IAsyncDisposable и асинхронные скоупы (await using var scope = provider.CreateAsyncScope()), не блокируйте DisposeAsync() синхронно. Порядок освобождения — обратный порядку регистрации; следите, чтобы зависимые сервисы не переживали свои провайдеры, и не смешивайте Dispose/DisposeAsync без нужды.
Библиотека собеса по С#
Post #1128
1.62K