当前位置: 首页 > news >正文

扁平化设计网站建设课程开发公司

扁平化设计网站建设,课程开发公司,最新热点新闻,网站绑定微信账号在 C# 中,依赖注入服务的生命周期指的是在应用程序中管理和控制依赖项注入服务对象的生命周期的方式。常见的生命周期包括瞬态(transient)、作用域(scoped)和单例(singleton)三种。 瞬态&#…

在 C# 中,依赖注入服务的生命周期指的是在应用程序中管理和控制依赖项注入服务对象的生命周期的方式。常见的生命周期包括瞬态(transient)、作用域(scoped)和单例(singleton)三种。

  1. 瞬态(Transient)生命周期
    瞬态生命周期是指每次从容器中请求服务时,都会创建一个新的实例。这意味着每次注入服务时都会得到一个新的对象,对象的生命周期仅在请求期间。适用于每次都需要新实例的场景。
  • 应用场景:适用于需要频繁创建新实例的服务。每次请求时都会创建一个新的-对象,对象的生命周期仅限于当前请求或方法调用。
  • 示例:适合轻量级临时对象或者对象内部状态随请求变化的情况。例如,一些计算服务或者临时数据处理服务。
services.AddTransient<IService, Service>();
  1. 作用域(Scoped)生命周期:
    作用域生命周期是指在同一个作用域中,每次请求服务都会得到相同的实例,而不同作用域之间会有不同的实例。通常在每个 HTTP 请求或每个线程上下文中会创建一个新的作用域,服务的生命周期为整个作用域。适用于需要在同一个作用域内共享服务实例的场景。
  • 应用场景:适用于需要在同一个作用域内共享实例的服务。通常在 Web 应用中,每个 HTTP 请求会创建一个作用域,该作用域内的服务实例在整个请求过程中都是同一个。
  • 示例:在处理每个 HTTP 请求时,例如数据库上下文或者用户身份验证服务,保证在同一请求中使用相同的实例以确保数据一致性和请求隔离。
services.AddScoped<IService, Service>();
  1. 单例(Singleton)生命周期
    单例生命周期是指在整个应用程序生命周期中只会创建一个实例,所有请求都会共享同一个实例。适用于整个应用程序生命周期内只需要一个实例的场景。
  • 应用场景:适用于整个应用程序生命周期内只需要一个实例的服务。这样可以确保所有请求共享同一个实例,节省资源并确保全局状态一致性。
  • 示例:例如配置管理服务、日志服务或者缓存服务,这些服务在应用程序运行期间始终保持不变,并且需要在应用程序的各个部分共享相同的实例。
services.AddSingleton<IService, Service>();

使用示例

using Microsoft.Extensions.DependencyInjection;
using System;namespace IOCTest
{internal class Program{static void Main(string[] args){//SingletionServiceTest();//TransientServiceTest();ScoreServiceTest();Console.ReadKey();}private static void ScoreServiceTest(){ServiceCollection services = new ServiceCollection();services.AddScoped<TestServicelmpl>();TestServicelmpl tt;using (ServiceProvider sp = services.BuildServiceProvider()){using (IServiceScope scope1 = sp.CreateScope()){TestServicelmpl testServicelmpl = scope1.ServiceProvider.GetService<TestServicelmpl>();TestServicelmpl testServicelmpl2 = scope1.ServiceProvider.GetService<TestServicelmpl>();testServicelmpl.Name = "ouou";bool isEqual = ReferenceEquals(testServicelmpl, testServicelmpl2);tt = testServicelmpl;}using (IServiceScope scope2 = sp.CreateScope()){TestServicelmpl testServicelmpl = scope2.ServiceProvider.GetService<TestServicelmpl>();TestServicelmpl testServicelmpl2 = scope2.ServiceProvider.GetService<TestServicelmpl>();testServicelmpl.Name = "kk";bool isEqual = ReferenceEquals(testServicelmpl, testServicelmpl2);isEqual = ReferenceEquals(testServicelmpl, tt);}}}static void SingletionServiceTest(){ServiceCollection services = new ServiceCollection();services.AddSingleton<TestServicelmpl>();using (ServiceProvider sp = services.BuildServiceProvider()){TestServicelmpl testServicelmpl = sp.GetService<TestServicelmpl>();TestServicelmpl testServicelmpl2 = sp.GetService<TestServicelmpl>();bool isEqual = ReferenceEquals(testServicelmpl, testServicelmpl2);testServicelmpl.Name = "ouou";testServicelmpl.SayHi();testServicelmpl.Name = "kk";testServicelmpl2.SayHi();}}static void TransientServiceTest(){ServiceCollection services = new ServiceCollection();services.AddTransient<TestServicelmpl>();using (ServiceProvider sp = services.BuildServiceProvider()){TestServicelmpl testServicelmpl = sp.GetService<TestServicelmpl>();TestServicelmpl testServicelmpl2 = sp.GetService<TestServicelmpl>();bool isEqual = ReferenceEquals(testServicelmpl, testServicelmpl2);testServicelmpl.Name = "ouou";testServicelmpl.SayHi();testServicelmpl.Name = "kk";testServicelmpl2.SayHi();}}}}
http://www.yayakq.cn/news/763473/

相关文章:

  • 自己优化网站做平面设计去哪些网站找图
  • 专业3合1网站建设价格接工程网站
  • 网站推广怎么做才有效果wordpress如何导出
  • 域名申请好了 怎么做网站茂名网站建设技术托管
  • 网站功能开发费用多少钱电子商城怎么注册
  • 网站建设与管理实训wordpress文章列表添加字段
  • 酒吧网站模板成都网红景点
  • 网站二维码可以做长按识别吗莱芜seo
  • 书画艺术网站建设qq刷赞网站推广
  • 个人工作室网站模板建立网站的好处
  • 长沙学校网站建设可以搜索国外网站的搜索引擎
  • 繁峙做网站建设消防做ccc去那个网站
  • 专业建设网站服务做网站维护需要会什么
  • 农村建设商城网站的好处php怎么解析wordpress
  • 网站建设答辩ppt下载绿色环保网站模板
  • 网站被植入了js创建平台网站下载链接
  • 临安网站开发网站建设店铺介绍怎么写
  • 东阳实惠营销型网站建设厂家网站后wordpress文章编辑页面
  • 阿里云服务器网站开发郑州做网站公司排
  • 建网站需要多少钱选苏州聚尚网络网站开发前期功能策划
  • 网站建设了上海营业执照网上申请
  • 网站制作流程 优帮云柳州建设网app
  • app与手机网站传奇网站怎么制作教程
  • 网站商品管理功能大网站cn域名
  • 杭州下沙网站建设wordpress和discuz结合
  • 做相册的网站 ppt做网站的首页下拉列表
  • 网站开发一般用什么工具wordpress高级轮播
  • 如何建设一个稳定的网站24小时自助下单网站
  • 泊头在哪做网站比较好wordpress制作相册
  • 包头住房与城乡建设局网站长沙计算机培训机构排名前十