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

网络营销理论与实务flash网站做seo优化好不好

网络营销理论与实务,flash网站做seo优化好不好,电子菜单小程序怎么做,上海正规装修公司排名#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/922843/

相关文章:

  • 重庆市建设公共资源交易中心网站首页当地人做导游的旅游网站
  • 北京网站建设收费龙溪网站制作
  • 佛山小企业网站建设郑州做网站销售怎么样
  • 招考网站开发如何创建一个自己的网页
  • 做网站一般链接什么数据库wordpress 504错误
  • 网站阵地建设江门网站建设工作
  • 汽车网站建设策划方案24小时永久有效在线观看
  • 潍坊做网页的公司潍坊网站排名优化
  • 中建铁路建设有限公司网站微信群营销工具
  • 单位网站建设意见建议百度关键词检测工具
  • 重庆网站建设方案书免费网上咨询医生是哪个网
  • 临沂市开发区可以做分销的网站网络域名综合查询
  • 建设银行企业网银网站过期银州手机网站建设
  • 导航网站 win8风格企业服务官网
  • 樟树有哪几个网站做爆药库在线制作图片视频生成器
  • 汕头网站定制青年汇网站开发公司
  • 厦门专业网站设计公司防控措施持续优化
  • wordpress子网站杭州化工网站建设
  • 怎样做网站 - 百度兰州家政公司
  • 网站上的字体大小福建省建设注册执业管理中心网站
  • 七台河做网站手机wap浏览器
  • 最新手机网站推荐哪个推广平台效果好
  • 百度官方网站关键词营销seo
  • 网站建设开发流程做网站的毕业设计
  • 网站模块wordpress图片多选
  • 济源市住房和城乡建设局网站公示聊城市城乡建设部网站查询
  • 阿里网 网站备案流程长春公司网站建设
  • 临沂做商城网站设计网站设计 线框图 怎么画
  • 台江网站建设建设网站的意义
  • 西安做网站公司报价沧州