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

南昌做网站比较好的公司有哪些网站短信验证怎么做

南昌做网站比较好的公司有哪些,网站短信验证怎么做,国外工装设计网站大全,开发公司名字#x1f680;简介 依赖注入#xff08;Dependency Injection#xff0c;简称DI#xff09;是一种实现控制反转#xff08;IoC#xff09;的技术#xff0c;用于减少代码之间的耦合度。通过依赖注入#xff0c;一个类可以从外部获取其依赖的对象#xff0c;而不是自己…简介 依赖注入Dependency Injection简称DI是一种实现控制反转IoC的技术用于减少代码之间的耦合度。通过依赖注入一个类可以从外部获取其依赖的对象而不是自己创建。这样可以使得代码更加模块化更易于测试和维护。 依赖注入的生命周期主要有以下三种 Transient每次请求都会创建一个新的实例。这是最常见的生命周期选项。Scoped在同一次请求中始终返回同一实例。如果在不同的请求中将会创建一个新的实例。Singleton每次请求都返回同一个实例即在首次请求时创建的实例。 安装NuGet包 首先我们先安装 Microsoft.Extensions.DependencyInjection这是Microsoft提供的依赖注入框架。 Transient 创建一个类包含一个属性Name和一个方法SayHi public class TestServicesImp {public string Name { get; set; }public void SayHi(){Console.WriteLine(Hello:Name);} } 通过ServiceCollection创建了一个服务容器然后通过AddTransient方法将TestServicesImp类型注册到这个服务容器中。这里使用的是瞬时生命周期也就是每次从容器中获取TestServicesImp类型时都会创建一个新的实例。 public class Program {public static void Main(string[] args){var serviceCollection new ServiceCollection();serviceCollection.AddTransientTestServicesImp();using (ServiceProvider sp serviceCollection.BuildServiceProvider()){var t1 sp.GetServiceTestServicesImp();t1.Name 张三;t1.SayHi();var t2 sp.GetServiceTestServicesImp();t2.Name 李四;t2.SayHi();var referenceEquals object.ReferenceEquals(t1, t2);Console.WriteLine(referenceEquals);}} } 运行结果因为在瞬时生命周期中每次获取服务都会创建新的实例。 因此通过object.ReferenceEquals方法比较了t1和t2是否是同一个实例结果会输出false Scoped 我们将上面代码中的服务注册AddTransient方法换成AddScoped,然后t2.SayHi();换成t1.SayHi();再试一次。 public static void Main(string[] args){var serviceCollection new ServiceCollection();serviceCollection.AddScopedTestServicesImp();using (ServiceProvider sp serviceCollection.BuildServiceProvider()){var t1 sp.GetServiceTestServicesImp();t1.Name 张三;t1.SayHi();var t2 sp.GetServiceTestServicesImp();t2.Name 李四;t1.SayHi();var referenceEquals object.ReferenceEquals(t1, t2);Console.WriteLine(referenceEquals);}} 发现这次的比较结果为true并且第二次调用SayHi也是使用t1但依然输出了李四因此可以得出两次获取服务得到的是同一个实例。 我们对代码再进行改造一下创建一个新的服务作用域通过这个作用域的ServiceProvider对象获取了另一个TestServicesImp的实例t2。 public static void Main(string[] args){var serviceCollection new ServiceCollection();serviceCollection.AddScopedTestServicesImp();using (ServiceProvider sp serviceCollection.BuildServiceProvider()){var t1 sp.GetServiceTestServicesImp();t1.Name 张三;using (IServiceScope scope sp.CreateScope()){var t2 scope.ServiceProvider.GetServiceTestServicesImp();t2.Name 李四;t1.SayHi();t2.SayHi();var referenceEquals object.ReferenceEquals(t1, t2);Console.WriteLine(referenceEquals);}}} 因为它们是在不同的Scope中获取的所以这次的结果是false Singleton  我们将服务注册AddScoped方法换成AddSingleton然后再执行一次 public static void Main(string[] args){var serviceCollection new ServiceCollection();serviceCollection.AddSingletonTestServicesImp();using (ServiceProvider sp serviceCollection.BuildServiceProvider()){var t1 sp.GetServiceTestServicesImp();t1.Name 张三;using (IServiceScope scope sp.CreateScope()){var t2 scope.ServiceProvider.GetServiceTestServicesImp();t2.Name 李四;t1.SayHi();t2.SayHi();var referenceEquals object.ReferenceEquals(t1, t2);Console.WriteLine(referenceEquals);}}} 在输出结果中很显然可以看出使用AddSingleton注册服务每次请求都返回同一个实例
http://www.pierceye.com/news/682069/

相关文章:

  • 学校网站建设源码网站开发公司创业
  • 直播网站开发公司赣州网站建设hyxxjs
  • 佛山电商网站制作wordpress评论显示地址
  • 自己怎样用手机建网站化妆品网站模板免费下载
  • 当今做哪个网站致富早期网页游戏
  • 手机网站开发指南西安做网站的
  • php网站搬家教程装修网站建设方案书
  • 上海建网站工作室网络设计培训学校长沙
  • 手机自建网站平台如何寻找seo网站建设客户
  • 网站按关键词显示广告图片这样制作公司网站
  • 桂林建站平台哪家好北京注册公司查询
  • c 高性能网站开发淄博学校网站建设方案
  • 网站建设网站维护的具体内容是什么wordpress主题模板调用
  • 专业网站建设公创建app软件
  • 佛山哪家网站建设比较好互联网内容服务商有哪些
  • 商家在携程旅游网站怎样做宣传ppt免费下载素材库
  • 下载建设银行官方网站下载网站模块介绍
  • 网站定制开发公司推荐网站续费问题
  • 专注七星彩网站开发出租云服务器上建网站
  • 天津做网站.都找津坤科技中国菲律宾历史战绩
  • 网站建设合同的效力网站建设公司需要交税么
  • 色弱可以做网站开发吗建网站的步骤及方法
  • 卖衣服的网站排名discuz分类信息模板
  • 广西网站开发公司招聘网页制作软件
  • 网站框架一般用什么做dede搭建网站教程
  • 郑州网站开发比较好的网络公司网络推广公司有多少家
  • 银川做网站服务免费word模板
  • 个人网站备案方法网站开发制作云盘
  • 培训做网站传奇手游发布网站
  • 中国保密在线网站培训系统手机购物平台