(此文章同时发表在本人微信公众号“dotNET每日精华文章”,欢迎右边二维码来关注。)

题记:ASP.NET 5整个底层都架构于依赖注入机制之下,今天介绍的文章详细介绍了内置依赖注入容器。

在ASP.NET之前的版本中,虽然各个框架(MVC、WEB API、SignalR)都支持依赖注入,但是由于框架是相互独立的,所以使用依赖注入的方式都有所差异。Katana曾经期望通过OWIN来统一这些差异,直到ASP.NET 5中才得以实现。这得利于整个ASP.NET 5都是构建于依赖注入机制之下,且内置了一个依赖注入容器。在这篇文章《Dependency Injection In ASP.NET 5 – One Step Deeper》中,Emad Alashi就深入介绍了ASP.NET 5引入的依赖注入机制和默认容器的相关接口包括运行原理。

ASP.NET 5之所以能统一依赖注入的方式,是因为对依赖注入进行了一个更为高级的抽象,并提供了一系列接口来封装这种抽象。

  • IServiceProvider:这是整个依赖注入机制的主接口,让开发人员可以获取到之前注册到容器中的对象实例。其只提供一个方法:GetService(Type)。这个方法可以对应到Autofac中的container.Resolve<Service>()或者Ninject中的kernel.Get<Service>()。
  • IServiceScope:这是把IServiceProvider包装为Scoped(限定范围内)容器的接口。比如通过HttpContext.RequestServices属性获取到的IServiceProvider实例即是一个Scoped的。
  • IServiceScopeFactory:要创建IServiceScope的实例就需要依靠这个工厂接口。
  • ServiceLifetime:提供了对象作用域的枚举(Singleton、Scoped和Transient)。
  • ServiceDescriptor:服务描述来构建一个容器的所有信息。

文章后面还详细介绍了依赖注入机制的具体使用方式和运行原理,涉及到:注册服务、处理请求(获得对象实例)。最后还以Autofac为例介绍了如何使用第三方的IoC框架。

更细节的文字大家可以“阅读原文”。

原文链接:http://www.emadashi.com/2015/06/dependency-injection-in-asp-net-5-one-step-deeper/

深入理解ASP.NET 5的依赖注入的更多相关文章

  1. 深入理解net core中的依赖注入、Singleton、Scoped、Transient(四)

    相关文章: 深入理解net core中的依赖注入.Singleton.Scoped.Transient(一) 深入理解net core中的依赖注入.Singleton.Scoped.Transient ...

  2. 深入理解net core中的依赖注入、Singleton、Scoped、Transient(一)

    相关文章: 深入理解net core中的依赖注入.Singleton.Scoped.Transient(一) 深入理解net core中的依赖注入.Singleton.Scoped.Transient ...

  3. 深入理解net core中的依赖注入、Singleton、Scoped、Transient(四)【转】

    原文链接:https://www.cnblogs.com/gdsblog/p/8465401.html 相关文章: 深入理解net core中的依赖注入.Singleton.Scoped.Transi ...

  4. ASP.NET 5:依赖注入

    ASP.NET 5:依赖注入 1.背景 如果某个具体的(或类)对象被客户程序所依赖,通常把它们抽象成抽象类或接口.简单说,客户程序摆脱所依赖的具体类型,称之为面向接口编程. 那么问题来了?如何选择客户 ...

  5. ASP.NET Core之依赖注入

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

  6. 深入理解net core中的依赖注入、Singleton、Scoped、Transient(三)

    相关文章: 深入理解net core中的依赖注入.Singleton.Scoped.Transient(一) 深入理解net core中的依赖注入.Singleton.Scoped.Transient ...

  7. 深入理解net core中的依赖注入、Singleton、Scoped、Transient(二)

    相关文章: 深入理解net core中的依赖注入.Singleton.Scoped.Transient(一) 深入理解net core中的依赖注入.Singleton.Scoped.Transient ...

  8. ASP.NETCore使用AutoFac依赖注入

    原文:ASP.NETCore使用AutoFac依赖注入 实现代码 1.新建接口类:IRepository.cs,规范各个操作类的都有那些方法,方便管理. using System; using Sys ...

  9. ASP.NET MVC IOC依赖注入之Autofac系列(二)- WebForm当中应用

    上一章主要介绍了Autofac在MVC当中的具体应用,本章将继续简单的介绍下Autofac在普通的WebForm当中的使用. PS:目前本人还不知道WebForm页面的构造函数要如何注入,以下在Web ...

随机推荐

  1. python查找并删除相同文件-UNIQ File-wxPython版本

    今天用wxPython做了一个GUI程序,我称之为UNIQ File,实现查找指定目录内的相同文件,主要原理是计算文件的md5值(计算前先找出文件大小相同的文件,然后计算这些文件的md5值,而不是所有 ...

  2. ThinkPHP 知识点链接

    1.Thinkphp3.2 行为扩展和插件(Hook)       http://www.thinkphp.cn/topic/21323.html 2.ThinkPHP3.1.3的单字母函数汇总   ...

  3. jQuery工作原理

    jQuery的开篇声明里有一段非常重要的话:jQuery是为了改变javascript的编码方式而设计的.从这段话可以看出jQuery本身并不是UI组件库或其他的一般AJAX类库.jQuery改变ja ...

  4. Sharepoint2013 中想要将网站另存为模板步骤

    Sharepoint2013 中想要将网站另存为模板步骤 第一步:使用SPD打开想要另存为模板的网站,找到网站选项: 第二步:点击打开网站选项,找到一个SaveSiteAsTemplateEnable ...

  5. Jenkins安装部署

    官方文档:https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions#Install ...

  6. Unity3D研究院之Prefab里面的Prefab关联问题(转)

    转自http://www.xuanyusong.com/archives/3042 最近在做UI部分中遇到了这样的问题,就是Prefab里面预制了Prefab.可是在Unity里面一旦Prefab预制 ...

  7. SolrCloud环境配置

    Solr是一个企业级搜索服务器,对外提供Web-Service接口,用户可以通过http请求,向搜索引擎提交xml或者json格式的数据,生成索引:然后可以通过http get请求查找,获取返回的xm ...

  8. ffmpeg-20160506-git-bin

    ESC 退出 0 进度条开关 1 屏幕原始大小 2 屏幕1/2大小 3 屏幕1/3大小 4 屏幕1/4大小 S 下一帧 [ -2秒 ] +2秒 ; -1秒 ' +1秒 下一个帧 -> -5秒 f ...

  9. K3安装记录

    安装的某些客户端没有客户端管理工具,测试问题所在 K3安装目录选择到D盘就可以,它自动生成kingdee\k3路径

  10. radio选中

    设置选中:$(':radio[name=isnode][value=' + isnode + ']').prop('checked',true); 1.获取选中值,三种方法都可以: $('input: ...