Я использую Microsoft.Extensions.DependencyInjection
(реализация по умолчанию).Я заметил, что когда я добавляю свой объект как синглтон, ServiceProvider
игнорирует IDisposable
на моем объекте.
var instance = new MyDisposableObj();
ServiceLocator.Instance = instance;
var services = new ServiceCollection();
services.AddSingleton( instance );
var container = services.BuildServiceProvider();
container.Dispose();
Похоже, что Microsoft считает, что мне нужно вручную удалять объекты, созданные вручную.
Но в случае, когда я делаю расширение для ServiceCollection, я хочу инкапсулировать удаление моего объекта.Я не должен заставлять пользователей моего расширения распоряжаться моими объектами вручную!
Итак, возможно ли изменить это поведение?