拥抱.NET Core系列:依赖注入(2)

时间:2021-09-20 11:41:20

上一篇“拥抱.NET Core系列:依赖注入(1)”大体介绍了服务注册、获取和生命周期,这一篇来做一些补充。

由于内容跨度大(.NET Core、ASP.NET Core),所以文章并不是非常的贯穿,大家可以挑着看。

构造函数的选择

如果一个服务中包含多个构造函数,.NET Core会选择哪一个呢?

答案是:最大匹配的构造函数。

我们来看个示例

拥抱.NET Core系列:依赖注入(2)

泛型服务

单个泛型

拥抱.NET Core系列:依赖注入(2)

多个泛型

拥抱.NET Core系列:依赖注入(2)

集成第三方DI容器

我们这边使用Autofac来做演示。

安装packages:“Autofac.Extensions.DependencyInjection”

拥抱.NET Core系列:依赖注入(2)

在 ASP.NET Core

拥抱.NET Core系列:依赖注入(2)

注意修改“ConfigureServices”方法的返回值为“IServiceProvider”。

在 View 中使用服务

拥抱.NET Core系列:依赖注入(2)

其它

在 ASP.NET Core 中,每个Request,都会创建一个新的DI子容器,在请求结束后会销毁该DI子容器。这样可以很好的避免资源泄漏。子容器的服务生命周期可以参考上一篇文章。

写在最后

.NET技术栈QQ群:384413261(点击加入.NET Group

拥抱.NET Core系列:依赖注入(2)的更多相关文章

  1. 拥抱.NET Core系列:MemoryCache 缓存域

    在上一篇“<拥抱.NET Core系列:MemoryCache 缓存选项>”我们介绍了一些 MSCache 的机制,今天我们来介绍一下 MSCache 中的缓存域. MSCache项目 M ...

  2. 拥抱&period;NET Core系列:MemoryCache 缓存域(转载)

    阅读目录 MSCache项目 缓存域 写在最后 在上一篇“<拥抱.NET Core系列:MemoryCache 缓存选项>”我们介绍了一些 MSCache 的机制,今天我们来介绍一下 MS ...

  3. 【半小时大话&period;net依赖注入】(下)详解AutoFac&plus;实战Mvc、Api以及&period;NET Core的依赖注入

    系列目录 上|理论基础+实战控制台程序实现AutoFac注入 下|详解AutoFac+实战Mvc.Api以及.NET Core的依赖注入 前言 本来计划是五篇文章的,每章发个半小时随便翻翻就能懂,但是 ...

  4. 拥抱&period;NET Core系列:MemoryCache 缓存过期

    在上一篇"拥抱.NET Core系列:MemoryCache 初识"中我们基本了解了缓存的添加.删除.获取,那么今天我们来看看缓存的过期机制.这里和上篇一样将把"Micr ...

  5. 拥抱&period;NET Core系列:MemoryCache 缓存选项

    在上一篇 "拥抱.NET Core系列:MemoryCache 缓存过期" 中我们详细的了解了缓存过期相关的内容,今天我们来介绍一下 MSCache 中的 Options,由此来介 ...

  6. ASP&period;NET Core之依赖注入

    本文翻译自:http://www.tutorialsteacher.com/core/dependency-injection-in-aspnet-core ASP.NET Core支持依赖注入,依赖 ...

  7. 拥抱&period;NET Core系列:MemoryCache 缓存选项 (转载)

    阅读目录 MSCache项目 MemoryCacheOptions ExpirationScanFrequency SizeLimit CompactionPercentage 写在最后 在上一篇 ” ...

  8. 拥抱&period;NET Core系列:MemoryCache 缓存过期 (转载)

    阅读目录 MSCache项目 MSCache提供的过期方式 绝对时间到期 滑动时间到期 自定义过期策略 过期策略组合拳 缓存过期回调 写在最后 在上一篇”拥抱.NET Core系列:MemoryCac ...

  9. 几十行代码实现ASP&period;NET Core自动依赖注入

    在开发.NET Core web服务的时候,我们习惯使用自带的依赖注入容器来进行注入. 于是就会经常进行一个很频繁的的重复动作:定义一个接口->写实现类->注入 有时候会忘了写Add这一步 ...

随机推荐

  1. (C&num;)使用NPOI导出Excel

    在做业务型的软件时,经常需要将某些数据导出,本文介绍了在Winform或Asp.net中使用NPOI(POI 项目的 .NET 版本)来操作Excel文件,而无需安装Office. 首先,需要获取NP ...

  2. kafka原理存储

    http://www.open-open.com/lib/view/open1421150566328.html

  3. Android View坐标getLeft&comma; getRight&comma; getTop&comma; getBottom

    1  引起疑惑 分析视图invalidate流程的过程中发现view的left, right, top, bottom跟自己理解的不一样,现在想分析一下这几个值具体的含义. 2  理解坐标,位置概念 ...

  4. BZOJ3563 &colon; DZY Loves Chinese

    想法题,由于K是加密的,但是通过读入我们可以自己数出来这一行有几个数, 所以可以直接反解出之前回答为连通的个数 至于最后一个询问就用并查集暴力回答 var n,i,m,s,k,j,q : longin ...

  5. Linux 经典面试题

    [Linux  经典面试题] 1. 在Linux系统中,以 文件 方式访问设备 . 2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统. 3. Linux文件系统中每个文 ...

  6. 模板类之间的友元关系实现Blob和BlobPtr

    16.12编写你自己版本的Blob和BlobPtr模板,包含书中未定义的多个const成员. Blob.h(注意,成员函数的声明和定义要放在一个头文件中) /*记住,模板的头文件中通常既包括声明也包括 ...

  7. Apex 中文件夹相关的单元测试

    Salesforce 中的文件夹 在 Salesforce 中,我们可以建立各种文档.报表.仪表板.电子邮件模板等.它们都被保存在相应的文件夹中. Salesforce 的后端将这些文件夹保存为 Fo ...

  8. (转)sql 违反了 PRIMARY KEY 约束&comma;不能在对象 中插入重复键

    说明你的数据里面有重复记录 两种情况 1.已存在的表中和要导入数据之间的重复 这个时候可以通过在两个表之间建立关联,将主键级联找出重复记录 2.要导入的表中存在重复记录 可通过类似如下的语句将表中的重 ...

  9. jQuery-iframe加载完成后触发的事件监听

    每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code 最近遇到一个问题,要写一个后台管理系统的layout,里面content是一个ifra ...

  10. OUI启动时的小错误PRVF-0002

    [oracle@bys3 database]$ Starting Oracle Universal Installer... Checking Temp space: must be greater ...