在.NET Core 中 依赖注入Dependency-Injection)作为基础知识,在.Net Core中无处不在;这么重要的知识接下来就了解和在.Net Core中使用。
一、依赖注入 说到依赖注入(Dependency Injection,以下简称DI),就必须说IoC(Inverse of Control);这两个概念很容易搞混。
IoC:主要体现了这样一种设计思想:通过将一组通用流程的控制从应用转移到框架之中以实现对流程的复用,同时采用“好莱坞原则”是应用程序以被动的方式实现对流程的定制。
DI:服务的消费者利用一个独立的容器(Container)来获取所需的服务对象,容器自身在提供服务对象的过程中会自动完成依赖的解析与注入
核心功能:服务注册和服务提供
二、DI在.Net Core中实现在.Net Core中主要 Microsoft.Extensions.DependencyInjection 中实现DI相关功能,可以在你的项目中单独使用它
核心分为两个组件:IServiceCollection和 IServiceProvider
IServiceCollection:负责服务的注册;主要扩展方法如下:
public static class ServiceCollectionServiceExtensions { public static IServiceCollection AddScoped(this IServiceCollection services, Type serviceType, Type implementationType); public static IServiceCollection AddSingleton(this IServiceCollection services, Type serviceType, Type implementationType); public static IServiceCollection AddTransient(this IServiceCollection services, Type serviceType, Type implementationType); …… }