ASP.NET Core中的依赖注入如何实现和优化?

摘要:[TOC] 什么是依赖注入 软件设计原则中有一个依赖倒置原则(DIP),为了更好的解耦,讲究要依赖于抽象,不要依赖于具体。而控制反转(Ioc)就是这样的原则的其中一个实现思路, 这个思路的其中一种实现方式就是依赖注入(DI)。 什么是依赖
目录什么是依赖注入ASP .NET Core 中使用依赖注入注册使用释放替换为其它的 Ioc 容器参考 什么是依赖注入 软件设计原则中有一个依赖倒置原则(DIP),为了更好的解耦,讲究要依赖于抽象,不要依赖于具体。而控制反转(Ioc)就是这样的原则的其中一个实现思路, 这个思路的其中一种实现方式就是依赖注入(DI)。 什么是依赖:当一个类需要另一个类协作来完成工作的时候就产生了依赖。 什么是注入: 注入体现的是一个IOC(控制反转的的思想)。正转是自己来实例化需要的依赖。反转是类不应该自己创建它,而是应该由它的调用者传给它。于是可以通过构造函数等让外界把依赖传给类。 为什么要反转 为了在业务变化的时候尽少改动代码可能造成的问题。基于抽象添加新的实现。只需要在原来注入的地方改一下就可以了。 什么是容器 容器统一管理系统中的所有依赖。容器负责两件事情: 绑定服务与实例之间的映射关系 获取实例并对实例进行管理(创建与销毁) ASP .NET Core 中使用依赖注入 IServiceCollection 负责注册服务,是一个IList类型的集合。 IServiceProvider 负责提供实例,是由IServiceCollection的扩展方法BuildServiceProvider创建的。 ServiceDescriptor 单个服务描述 Type ServiceType: 服务的类型 Type ImplementationType: 实现的类型 ServiceLifetime Lifetime: 服务的生命周期 object ImplementationInstance: 实现服务的实例 Func<IServiceProvider, object> ImplementationFactory: 创建服务实例的工厂 注册 ServiceCollection提供了三种注册方法分别对应着三种实例生命周期。
阅读全文