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

郴州网站建设方案策划打开网站的语音播报怎么做

郴州网站建设方案策划,打开网站的语音播报怎么做,学院网站建设目的,建设部网站网上大厅提到依赖不得不提到,控制反转(Inversion of Control,IOC)这个概念,简单的来讲就是将控制对象的权限交给框架,不再手动完成。IOC实现方式有2种: 1、服务定位器(ServiceLocator),主动…

提到依赖不得不提到,控制反转(Inversion of Control,IOC)这个概念,简单的来讲就是将控制对象的权限交给框架,不再手动完成。IOC实现方式有2种:

1、服务定位器(ServiceLocator),主动获取对象

2、依赖注入(Dependency Injection,DI),在使用的地方申明对象,由框架自动赋值。

DI好处:简化模块的组装过程,降低模块之间的耦合度。

---------------------------------------------------------------------------------------------------------------------------------DI常见概念:

1、服务(Service):对象;

2、注册服务;

3、服务容器:负责管理注册的服务

4、查询服务:创建对象及关联对象

---------------------------------------------------------------------------------------------------------------------------------根据类型获取和注册服务,需要分别指定服务类型(service type)和实现类型(implementation type),服务类型推荐用接口(可以是接口、类),实现类型只能用类。

.Net 控制反转组件取名为:DependecyInjection,也包含ServiceLocator功能

public inteface iTest{

}

public class Test:iTest{

}

---------------------------------------------------------------------------------------------------------------------------------【怎么使用】

1、Nuget 安装 Microsoft.Extensions.DependencyInjection

2、using Microsoft.Extensions.DependencyInjection

ServiceCollection services = new ServiceCollection();//定义一个承放服务的集合services.AddTransient<GetRole>();//添加一个瞬态的服务
using (ServiceProvider serviceProvider = services.BuildServiceProvider())
{//ServiceProvider 相当于服务定位器GetRole service = serviceProvider.GetService<GetRole>();service.Name = "test";service.GetName();}

---------------------------------------------------------------------------------------------------------------------------------

对象生命周期:Transient(瞬态);Scoped(范围)、Singleton(单例)

1、Transient,添加一个瞬态的服务, 每次申明服务时,会创建新的对象。

ServiceCollection services = new ServiceCollection();//定义一个承放服务的集合
services.AddTransient<GetRole>();//添加一个瞬态的服务 每次申明服务时,会创建新的对象using (ServiceProvider serviceProvider = services.BuildServiceProvider())
{   GetRole service = serviceProvider.GetService<GetRole>();service.Name = "test";service.GetName();GetRole service1 = serviceProvider.GetService<GetRole>();service1.Name = "test2";service1.GetName();//结果:service!=service1
}

2、Singleton,添加一个单例的服务 每次申明服务时,会指向同一对象。

3、Scope,添加一个范围的服务  范围内的申明的服务,会指向同一对象

注:如果申明的Singleton,在Scope范围申明的服务视为Singleton的情况。

ServiceCollection services = new ServiceCollection();//定义一个承放服务的集合services.AddScoped<GetRole>();using (ServiceProvider serviceProvider = services.BuildServiceProvider())
{   //Scope用法using (IServiceScope scope1 = serviceProvider.CreateScope()) {GetRole service     = scope1.ServiceProvider.GetService<GetRole>();service.Name = "test";service.GetName();GetRole service2 = scope1.ServiceProvider.GetService<GetRole>();service1.Name = "test";service1.GetName();//范围内service=service2}using (IServiceScope scope2 = serviceProvider.CreateScope()) {GetRole service3 = scope2.ServiceProvider.GetService<GetRole>();service.Name = "test";service.GetName();GetRole service4 = scope2.ServiceProvider.GetService<GetRole>();service1.Name = "test";service1.GetName();}//范围外service2!=service3

其他知识点:Dispose 释放资源

如果服务继承了IDisposable接口,在离开Scope范围时,会自动调用类的Dispose方法释放资源。

http://www.yayakq.cn/news/357269/

相关文章:

  • 夫妻性做受视频什么网站网站备案 拍照网点
  • 优秀的网站开发网站开发长沙
  • 房产官方网站做动画 的 网站有哪些
  • 只有网站才需要域名吗建设企业银行官网
  • h5手机网站怎么做做网站可以申请个体户么
  • 罗湖商城网站设计网站的建设方法包括
  • 设计师服务平台鱼巴士有哪些网站广告设计月薪多少钱
  • 网站被降权会发生什么影响吗企业网站推广策划书
  • 大站wordpress企业所得税怎么算出来
  • 宜兴市住房和城乡建设局网站电商运营seo是什么
  • 网站搭建的策略与方法网站推广费用大概需要多少钱
  • 我的文档上传到网站 做链接石景山青岛网站建设
  • 网站建设主题怎么定access 数据库做网站
  • 做网站域名做婚纱网站的目的
  • 忻州建站公司装饰网站建设流程
  • 为什么要进行电子商务网站规划免费wordpress响应式企业主题
  • 青岛创世网络网站建设中医院网站素材
  • 库尔勒网站建设价格商城平台建设
  • 遵义网站建设哪家好宁波建材信息造价中心
  • 做的最好的视频教学网站制作公司网站哪个好
  • 网站在空间费用互联网创意网站有哪些方面
  • 网站后台添加内容网页不显示免费 成品模板网站
  • 河南建设安全协会网站杭州网站搭建多少钱
  • 用淘宝评论做网站建立网站 英语怎么说
  • 免费建网站的步骤网站背景怎么弄
  • 网站建设打造营销型网站福州 网站建设
  • 企业网站建设软件需求分析个人网站模板html 下载
  • 搜网站内容手机建站平台哪个好
  • 网站的子域名备案修改网站名称
  • 网站应该怎么建设碑林网站制作