.NET CORE 的依赖注入的方式

.NET CORE 的依赖注入的方式,第1张

.NET CORE 存在三种依赖注入的方式

AddTransient :瞬时模式:每次请求,都获取一个新的实例。即使同一个请求获取多次也会是不同的实例

例如:Controller添加一个IUser 的依赖,在Action中,IUser的实例是不同的。

使用方式: services.AddTransient<IOperationTransient, Operation>()

AddScoped :每次请求,都获取一个新的实例。同一个请求获取多次会得到相同的实例

例如:上例中,同一个Action中,实例是相同的。

使用方式: services.AddScoped<IMyDependency, MyDependency>()

AddSingleton :单例模式:每次都获取同一个实例

使用方式: services.AddSingleton<ISchedulerFactory, StdSchedulerFactory>() //注册ISchedulerFactory的实例

也可以直接注入一个类,例如helper类: services.AddTransient<ExportHelper>()

使用场景

组件嵌套过多,而且所有组件都需要使用根组件(包括但不限于)的某一些内容时(数据或方法),使用依赖注入会比普通的传值更加方便

使用

然后在任何子组件里,我们都可以使用 inject 选项来接收指定的我们想要添加在这个实例上的属性:

相比于$parent,选择依赖注入的好处

使用依赖注入可以让我们免于暴露整个根组件信息,具体有两点

祖先组件不需要知道哪些后代组件使用它提供的属性

后代组件不需要知道被注入的属性来自哪里

当组件嵌套过多,而且所有组件都需要使用根组件(包括但不限于)的某一些内容时(数据或方法),使用依赖注入会比普通的传值更加方便

使用

// 官方示例

// 依赖注入一个getMap方法

provide: function () {

return {

getMap: this.getMap

}

}

原文链接: https://www.jianshu.com/p/8ca83311d752


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/7957065.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-11
下一篇2023-04-11

发表评论

登录后才能评论

评论列表(0条)

    保存