依赖注入(Dependency Injection,DI) 是一种软件设计模式,它用于实现 控制反转(Inversion of Control,IoC)。依赖注入的核心思想是将对象所依赖的其他对象(依赖)通过外部传入,而不是在类的内部进行实例化,从而提高代码的可维护性和可测试性。
依赖注入的核心思想是将对象所依赖的其他对象(依赖)通过外部传入,而不是在类的内部进行实例化,从而提高代码的可维护性和可测试性。
1. 依赖注入的概念
- 依赖:一个类需要使用的对象或服务。例如,
Car
类依赖于Engine
类。 - 注入:将依赖(如
Engine
实例)通过外部方式传入到依赖类(如Car
类)中。
这样,类不需要关心依赖对象的创建与管理,而是将这些责任交给外部容器或框架。
2. .NETCore中的依赖注入组件
.NET Core 内置的依赖注入容器由以下几个核心组件组成:
-
IServiceCollection
- 用于注册服务和依赖关系的接口。
-
ServiceDescriptor
- 描述服务的注册信息(包括服务类型、实现类型和生命周期)。
-
IServiceProvider
- 提供服务实例的接口,通过它可以获取注册好的依赖对象。