C# 微软依赖注入 (Microsoft.Extensions.DependencyInjection) 详解
文章目录
- 前言
-
- 核心原理
- 三大生命周期
- 核心接口与类
- 基础使用示例
- 关键特性详解
-
- 1、构造函数注入
- 2、作用域管理
- 3、服务解析方法
- 4、延迟加载
- 常见问题解决
-
- 问题1:循环依赖
- 问题2:多实现选择
- 性能优化技巧
- 扩展方法示例
前言
微软的依赖注入框架是 .NET Core/5+
的核心组件,提供轻量级、高性能的依赖注入实现,遵循 IServiceProvider
接口规范。
核心原理
-
控制反转 (IoC)
将对象创建和依赖管理的控制权从调用方转移到容器 -
依赖注入 (DI)
通过构造函数/属性/方法注入依赖对象 -
服务生命周期
管理对象的创建和销毁策略
三大生命周期
生命周期 | 描述 | 使用场景 |
---|---|---|
Transient | 每次请求都创建新实例 | 无状态服务 |
Scoped | 在同一作用域内共享实例(如 Web 请求) | 数据库上下文、请求相关服务 |
Singleton | 全 |