在.NET依赖注入框架中,`Add`、`TryAdd`和`TryAddEnumerable`方法虽均用于服务注册,但其注册语义存在本质差异。`Add`无条件覆盖已注册的服务;`TryAdd`仅在服务类型尚未注册时才执行注册,避免重复注入;`TryAddEnumerable`则针对可枚举服务集合,在不重复添加相同实现类型的前提下合并多个实例。实践中,大量依赖注入问题并非源于生命周期配置失误,而恰恰源于对这三者注册语义的误解。准确理解并选用合适方法,是保障服务解析行为可预测、应用架构稳健的关键。
依赖注入Add方法TryAdd注册语义.NET服务
2026-02-27