深入理解ASP.NET 5的依赖注入
(此文章同时发表在本人微信公众号“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的依赖注入的更多相关文章
- 深入理解net core中的依赖注入、Singleton、Scoped、Transient(四)
相关文章: 深入理解net core中的依赖注入.Singleton.Scoped.Transient(一) 深入理解net core中的依赖注入.Singleton.Scoped.Transient ...
- 深入理解net core中的依赖注入、Singleton、Scoped、Transient(一)
相关文章: 深入理解net core中的依赖注入.Singleton.Scoped.Transient(一) 深入理解net core中的依赖注入.Singleton.Scoped.Transient ...
- 深入理解net core中的依赖注入、Singleton、Scoped、Transient(四)【转】
原文链接:https://www.cnblogs.com/gdsblog/p/8465401.html 相关文章: 深入理解net core中的依赖注入.Singleton.Scoped.Transi ...
- ASP.NET 5:依赖注入
ASP.NET 5:依赖注入 1.背景 如果某个具体的(或类)对象被客户程序所依赖,通常把它们抽象成抽象类或接口.简单说,客户程序摆脱所依赖的具体类型,称之为面向接口编程. 那么问题来了?如何选择客户 ...
- ASP.NET Core之依赖注入
本文翻译自:http://www.tutorialsteacher.com/core/dependency-injection-in-aspnet-core ASP.NET Core支持依赖注入,依赖 ...
- 深入理解net core中的依赖注入、Singleton、Scoped、Transient(三)
相关文章: 深入理解net core中的依赖注入.Singleton.Scoped.Transient(一) 深入理解net core中的依赖注入.Singleton.Scoped.Transient ...
- 深入理解net core中的依赖注入、Singleton、Scoped、Transient(二)
相关文章: 深入理解net core中的依赖注入.Singleton.Scoped.Transient(一) 深入理解net core中的依赖注入.Singleton.Scoped.Transient ...
- ASP.NETCore使用AutoFac依赖注入
原文:ASP.NETCore使用AutoFac依赖注入 实现代码 1.新建接口类:IRepository.cs,规范各个操作类的都有那些方法,方便管理. using System; using Sys ...
- ASP.NET MVC IOC依赖注入之Autofac系列(二)- WebForm当中应用
上一章主要介绍了Autofac在MVC当中的具体应用,本章将继续简单的介绍下Autofac在普通的WebForm当中的使用. PS:目前本人还不知道WebForm页面的构造函数要如何注入,以下在Web ...
随机推荐
- JavaScript——同源策略
概念:同源策略是客户端脚本(尤其是Javascript)的重要的安全度量标准.它最早出自Netscape Navigator2.0,其目的是防止某个文档或脚本从多个不同源装载. 这里的同源指的是: ...
- 【leetcode】Minimum Path Sum
Minimum Path Sum Given a m x n grid filled with non-negative numbers, find a path from top left to b ...
- ACM/ICPC 之 BFS-简单障碍迷宫问题(POJ2935)
题目确实简单,思路很容易出来,难点在于障碍的记录,是BFS迷宫问题中很经典的题目了. POJ2935-Basic Wall Maze 题意:6*6棋盘,有三堵墙,求从给定初始点到给定终点的最短路,输出 ...
- Apache OFBiz 研究记录01
作为Apache 的顶级项目: Apache OFBiz,功能十分强大,一般开发者很难用到全部功能. 这次笔者的研究主要集中在电子商务平台这一块,一步一步解构. OFBiz下载地址:http://of ...
- iOS开发学习网站汇总
*本文转自CocoaChina 原文:11 Insanely Great iOS Developers Sites永不止步地向他人学习 我相信,要想从一个"还不错"的人变成一个卓越 ...
- nyoj221_Tree_subsequent_traversal
Tree 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 Little Valentine liked playing with binary trees very ...
- Mathematics:Semi-prime H-numbers(POJ 3292)
Semi-prime H-numbers 题目大意,令4n+1的数叫H数,H数素数x的定义是只能被x=1*h(h是H数),其他都叫合数,特别的,当一个数只能被两个H素数乘积得到时,叫H-semi数 ...
- codeforces 496B. Secret Combination 解题报告
题目链接:http://codeforces.com/problemset/problem/496/B 题目意思:给出 n 位数你,有两种操作:1.将每一位数字加一(当某一位 > 9 时只保存个 ...
- Spring+SpringMVC+Mybatis 多数据源整合(转)
转载自:http://blog.csdn.net/q908555281/article/details/50316137 目录(?)[-]拷贝所需jar拷贝jar文件需要的jar文件入下图所示因为我的 ...
- Cannot change version of project facet Dynamic Web Module to 3.0
背景描述: 最近在开发项目时,老是报错说:Project is not Dynamic Web Module 3.0.右击项目选择属性进行修改时出现以下错误: 这让我很是恼火,后来终于找到了万能的解决 ...