ASP.NET Core本身已经集成了一个轻量级的IOC容器

1、services.AddTransient<Iapplicationservice,applicationservice>//服务在每次请求时被创建,它最好被用于轻量级无状态服务(如我们的Repository和applicationservice服务)

2、services.AddScoped<Iapplicationservice,applicationservice>//服务在每次请求时被创建,生命周期横贯整次请求

3、services.AddSingleton<Iapplicationservice,applicationservice>//Singleton(单例) 服务在第一次请求时被创建(或者当我们在ConfigureServices中指定创建某一实例并运行方法),其后的每次请求将沿用已创建服务。如果开发者的应用需要单例服务情景,请设计成允许服务容器来对服务生命周期进行操作,而不是手动实现单例设计模式然后由开发者在自定义类中进行操作。

权重:

AddSingleton→AddTransient→AddScoped

1、AddSingleton的生命周期:项目启动-项目关闭   相当于静态类  只会有一个  

2、AddScoped的生命周期:请求开始-请求结束  在这次请求中获取的对象都是同一个 

3、AddTransient的生命周期:请求获取-(GC回收-主动释放) 每一次获取的对象都不是同一个

相关文章

本文将从上往下,循序渐进的介绍一系列相关.NET的概念,先从...
基于 .NET 的一个全新的、好用的 PHP SDK + Runtime: Pe...
.NET 异步工作原理介绍。
引子 .NET 6 开始初步引入 PGO。PGO 即 Profile Guided Opti...
前言 2021/4/8 .NET 6 Preview 3 发布,这个版本的改进大多来...
前言 开头防杠:.NET 的基础库、语言、运行时团队从来都是相...