IApplicationBuilder 里有如下一成员:

  IServiceProvider ApplicationServices { get; set; }

HttpContext 里有如下两个成员:

 public abstract IServiceProvider ApplicationServices { get; set; }
public abstract IServiceProvider RequestServices { get; set; }

IServiceProvider 的成员:

 public object GetService(Type serviceType)

创建 添加 调用的简单代码如下:

            var serviceProvider = new ServiceCollection()
.AddTransient<IFakeService, FakeService>()
.AddTransient<CreationCountFakeService>()
.BuildServiceProvider(); var IFakeService = serviceProvider.GetService(typeof(IFakeService))() as IFakeService;

简单描述为:创建一个集合 ServiceCollection;向集合里添加 键值对:接口 和 接口的实现。

集合会生成 ServiceProvider. 通过 ServiceProvider 来得到需要的对象。

代码中的 .AddTransient 作何理解吗? 现在看一下 LifecycleKind

 public enum LifecycleKind
{
Singleton, //单例;单态; 只有一个示例 每次调用都返回同一个对象
Scoped, // 一定范围的 在一定范围内只有一个实例 如在一个请求范围内是同一个实例 不同的请求创建新对象
Transient //短暂的;转瞬即逝的;临时的 每次调用都创建一个新的对象
}

06-001 DependencyInjection 之 LifecycleKind的更多相关文章

  1. 机器时代的中国字幕(Automata.2014.720p.WEB-DL.DD5.1.H264-RARBG.srt)

    看字幕.再也看不下去.自己翻译的位 评价的探讨 1 00:01:58,452 --> 00:02:02,088 人工增雨 期限为32分钟16第二 2 00:02:02,089 --> 00 ...

  2. C#实现.Net对邮件进行DKIM签名和验证,支持附件,发送邮件签名后直接投递到对方服务器(无需己方邮件服务器)

    项目地址 https://github.com/xiangyuecn/DKIM-Smtp-csharp 主要支持 对邮件进行DKIM签名,支持带附件 对整个邮件内容(.eml文件)的DKIM签名进行验 ...

  3. truncate table很慢之enq: RO - fast object reuse和local write wait等待分析

    使用ASSM表空间(默认模式)的时候,在dss系统中确实会出现truncate很慢的现象,但是他不会100%重现,得看概率.通过sql trace(对任何v$sysstat看起来资源消耗很低的情况,都 ...

  4. 【JDBC】仅输入表名和要插入的记录数,自动检测表的字段和类型,然后插入数据的全自动程序(Oracle版)

    之前写的批量插值程序只是五六半自动版本,因为表的字段还需要手工填写,这回只要指定表名和要插多少数据就行了,类似于全自动突击步枪,扣动扳机就把字段打完为止. 全自动程序如下,诸位拿下去后可以修改成自己想 ...

  5. Redis之Sentinel

    Redis的主从复制模式下,一旦主节点由于故障不能提供服务,需要人工将从节点晋升为主节点,同时还要通知应用方更新主节点地址,对于很多应用场景这种故障处理的方式是无法接受的.可喜的是Redis从 2.8 ...

  6. SpringBoot定时任务 - 集成quartz实现定时任务(单实例和分布式两种方式)

    最为常用定时任务框架是Quartz,并且Spring也集成了Quartz的框架,Quartz不仅支持单实例方式还支持分布式方式.本文主要介绍Quartz,基础的Quartz的集成案例本,以及实现基于数 ...

  7. [Asp.net 5] DependencyInjection项目代码分析2-Autofac

    Microsoft.Framework.DependencyInjection.Autofac源码分析 该工程只有一个代码静态类AutofacRegistration,但是该类有3个扩展方法,以及3个 ...

  8. 22----2013.06.29---HTML--html介绍.超链接和图片,表格,表单,表单标签,meta,复习当天内容

    01 HTML HTML :Hypertext Markup Language   超文本标记语言(类似于 裸奔的人.) 作用:向用户展示信息. CSS: Cascading 层叠样式表(类似于 人的 ...

  9. 06、NetCore2.0依赖注入(DI)之整合Autofac

    06.NetCore2.0依赖注入(DI)之整合Autofac 除了使用NetCore2.0系统的依赖注入(DI)框架外,我们还可以使用其他成熟的DI框架,如Autofac.Unity等.只要他们支持 ...

随机推荐

  1. mysqldump命令之single-transaction

    =========================================================在mysqldump中指定single-transaction时,会使用可重复读(RE ...

  2. skipper http router 简单试用

    说明: 使用源码编译,注意需要FQ,以及golang版本的问题,新版使用的是go mod 进行依赖管理 环境准备 clone 代码 git clone https://github.com/zalan ...

  3. JQury基础(一)样式篇

    1 初识jQury 1.1 环境搭建 jQuery是一个JavaScript脚本库,不需要特别的安装,只需要我们在页面 标签内中,通过 script 标签引入 jQuery 库即可. <head ...

  4. sql server 附加只有mdf的数据库文件

    有时候SQL Server意外断电会导致SQL Server的ldf日志文件丢失或者损坏,这个时候你如果直接附加mdf文件到SQL Server会失败,这里提供一个方法可以还原只有mdf的数据库文件, ...

  5. Python中的数组和list

    Python的X[y==1, 0] 最近研究逻辑回归,Iris花的经典示例,代码就不全粘贴了,具体代码参看“Iris花逻辑回归与实现” plt.plot(X[y==0, 0], X[y==0,1], ...

  6. win7重装系统笔记

    制作U盘启动盘:链接 原文链接:链接 开机进入bios界面(华硕:F2) 按方向左右键进入:Boot选项,将“Lunch CSM”设置为“Enabled” 方向键选择“Security”,将“Secu ...

  7. hadoop append 追加文件错误

    java.io.IOException:Failed to replace a bad datanode on the existing pipeline due to no more good da ...

  8. SpringBoot进阶之web进阶

    1.表单验证: 实体类添加: @Min(value = 18 ,message = "未成年少女禁止入内!")最小值限制为18,如果小于18则返回message中的信息 注入校验, ...

  9. require 与 include 的区别

    require 的英文意思是 需要,有赖于.如果使用了这条语句,也就是告诉PHP内核,我这个程序需要这个文件,有赖于这个文件.或者通俗点儿讲就是:我要她!所以,PHP如果发现require参数中的文件 ...

  10. Modbus RTU 协议使用汇总

    原创地址:https://blog.csdn.net/u012166958/article/details/64920144 标准的Modbus 口是使用RS-232C 兼容串行接口,它定义了连接口的 ...