容器负责清理它创建的类型,并在 IDisposable 实例上调用 Dispose。从容器解析的服务永远不应该由开发人员处置。如果类型或工厂注册为单例,容器会自动处理单例。
ActivatorUtilities.CreateInstance()
创建的对象是否算作“从容器解析”的服务。如果我使用此方法创建一个实现 IDisposable
或 IAsyncDisposable
的实例,我是否负责自行处置它? CreateInstance()
肯定使用容器来解决所请求类型的其他依赖关系。
我相信
ActivatorUtilities.CreateInstance()
能够创建对象,无论其类型或接口是否已在 DI 容器中注册。创建已注册 IDisposable
服务的实例与创建未注册 IDisposable
实例的实例的行为是否不同,在谁负责处置创建的实例方面有什么不同吗?