打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ASP.NET.Core --依赖注入

前言:

借助依赖注入框架,我们可以轻松管理类直接的依赖,帮助我们在构建应用时遵循设计原则,确保代码的可维护性和扩展性。
ASP.NET Core 的整个架构中,依赖注入框架提供了对象创建和生命周期管理的核心能力,各个组件相互协作,也是由依赖注入框架的能力实现的。

1:核心包
Microsoft.Extensions.DependecyInjection.Abstractions //抽象包
Microsoft.Extensions.DependecyInjection //具体实现包


用到了经典的设计模式,接口实现分离模式。
抽象包只包含接口的定义,实现包包含实现。 意味着我们的组件只需要依赖他的抽象接口,而不用依赖他的实现,
使用的时候注入他的具体实现即可,意味着我们可以替换具体的依赖注入框架实现,提高了程序的可扩展性。

2:核心类型
IServiceCollection:负责服务的注册
ServiceDescriptor:每个服务注册时的信息
IServiceProvider:具体的容器,也是由ServiceCollection build 出来的
IServiceScope:容器的子容器的生命周期

3:生命周期
Singleton:单例: 每次请求都是一个对象
Scoped:作用域:指在我的Scope的生存周期内,或者是子容器的生存周期内,如果容器释放掉,对象也会释放。每个请求内是相同的,不同的请求是不同的
transient:瞬时:我们每一次从容器里获取对象时都可以得到一个全新的对象

ps:[FromService]IMyservice myService 可以从容器里获取对象

4:注册方式
serviceProvider:工厂模式注册 ,适用于所有模式,可以在内部实现复杂逻

TryAddSingleton: 尝试注册(如果服务已经注册过了,就不在注册) //接口相同则注册不进去
TryAddEnumerable: 尝试注册 //实现类相同者注册不进去
Replace:替换注册:可以把之前注册过的服务替换成我们新注册的服务
RemoveAll<IOrderService>:删除注册:移除所有IOrderService的实现

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
为什么选择.NETCore?
一文看懂:什么是.NET Core以及.NET Core能做什么?
为什么选择ASP.NET Core
asp.net core 3.x 通用主机原理及使用
ASP.NET MVC5+EF6+EasyUI 后台管理系统(1)
ABP开发框架前后端开发系列---(1)框架的总体介绍
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服