深入探讨依赖注入容器的实现原理
依赖注入(DI)容器的本质,是一个智能的对象工厂 + 生命周期管理器。它解决的核心问题是:
当我需要一个对象时,自动帮我创建它,并递归创建它所有的依赖,同时正确管理这些对象的生命周期。
下面从零开始,深入拆解一个 DI 容器的完整实现原理。
1. 容器的核心职责
一个完整的 DI 容器至少要完成四件事:
注册(Registration)
记录“接口 → 实现类 + 生命周期”的映射关系。解析(Resolution)
根据类型,递归创建对象图。生命周期管理(Lifetime Management)
Transient / Scoped / Singleton 的正确创建与复用。释放(Disposal)
正确调用IDisposable/IAsyncDisposable。
2. 核心数据结构
// 服