MVC 依赖注入扩展
需求: 小明想要完成一个功能F,需要一把锤子T。
有两种办法可以实现:
1)小明很爱动手,精力很旺盛,于是,自己创建一个具有功能F的锤子T,并使用T来完成F;
2)小明很懒,天天睡大觉,于是,他叫小健买了一把具有功能F的锤子T,并且还交代小健必须亲自送到他的手上(够懒吧?),他才使用T来完成F。
是的,第一种方式就是动不动就new的;而第二种方式就是DI的一个解释。
而MVC中的DI,没有多大的复杂,仍然也是OCP原则的体现。
MVC框架设计的万能步骤:1)实现;2)注册。
1. 实现IDependencyResolver接口
public class MvcDependencyResolver : IDependencyResolver
{
public object GetService(Type serviceType)
{
return SomeContainer.Resolve(serviceType);
} public IEnumerable<object> GetServices(Type serviceType)
{
var type = typeof(IEnumerable<>).MakeGenericType(serviceType);
return (IEnumerable<object>)SomeContainer.Resolve(type);
}
}
2.Gloabal中注册Resolver
protected void Application_Start()
{ var dependencyResolver = new MvcDependencyResolver();
DependencyResolver.SetResolver(dependencyResolver); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
MVC 依赖注入扩展的更多相关文章
- .net core 依赖注入扩展,实现随处控制反转
在使用.net core时,依赖注入,主要使用通过构造函数注入.小编将通过扩展方式,实现在类中各个地方可以控制反转,获取实例. 1.首先自定义扩展类 using Microsoft.AspNetCor ...
- 基础教程:视图中的ASP.NET Core 2.0 MVC依赖注入
问题 如何在ASP.NET Core MVC Views中注入和使用服务. 解 更新 启动 类来为MVC添加服务和中间件. 添加一项服务 添加一个Controller,返回 ViewResult. 添 ...
- MVC 依赖注入
本人主要是写给我自己看的,文章没有过多的解释,只留下步骤. 目的:面向接口编程,做到低耦合,高内聚 1.利用Nuget 管理工具,安装Ninject. 2.随便新建一个接口和一个实现类,我在此项目中是 ...
- asp.net mvc 依赖注入Ninject
1.安装Ninject 2.使用Ninject 一 安装Ninject Nuget:Ninject 二 使用Ninject public interface IStudent { string Get ...
- .NET MVC 依赖注入 来龙去脉
找了很久,找到一篇好文章,细读很有收获: 点击打开链接http://www.codeproject.com/Articles/560798/ASP-NET-MVC-Controller-Depende ...
- MVC 依赖注入/控制反转
http://www.cnblogs.com/cnmaxu/archive/2010/10/12/1848735.html http://www.cnblogs.com/artech/archive/ ...
- 谈谈 Act 的依赖注入 和 模板输出 - 回答 drinkjava 同学提问
1. 背景 依赖注入工具 jBeanBox 的作者 drinkjava 同学最近在 Actframework gitee 项目 的提出了如下评论: 你这个DI工具的出发点可能有问题,一个MVC工具为什 ...
- WebAPI2使用AutoFac依赖注入完整解决方案。
WebApi2上进行依赖注入,在百度里能搜到的的完整解决方案的文章少之又少,缺胳膊断腿. 和MVC5依赖注入的不同之处,并且需要注意的地方,标记在注释当中.上Global代码: namespace S ...
- ASP.NET Core 中文文档 第四章 MVC(3.8)视图中的依赖注入
原文:Dependency injection into views 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:孟帅洋(书缘) ASP.NET Core 支持在视图中使用 依赖 ...
随机推荐
- Song Jiang's rank list
Song Jiang's rank list Time Limit:1000MS Memory Limit:512000KB 64bit IO Format:%I64d & ...
- UIDatePicker的简单用法
// 初始化UIDatePicker UIDatePicker *datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(, , , ) ...
- ZeroMQ(java)之Router与Dealer运行原理
在开始这部分的内容之前,先来看看ZeroMQ中HWM概念---High-Water Marks 当系统的数据量很大,而且发送频率很高的情况下,内存就很重要了,如果处理不好会出现很多问题,例如如下场景: ...
- typedef 各类定义,各类问题大全
第一篇:typedef struct与struct的区别 1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字.这里的数据类型包括内部数据类型(int,char等)和自定 ...
- Linux netstat详解
做计算机管理员,我们都必要了解一下netstat这个命令,它是一个查看网络连接状态的工具,在windows下也默认有这个工具.Netstat命令详解 netstat命令怎样使用 如何关闭TIME_WA ...
- SQL小技巧小知识
1.[ ]的使用 当我们所要查的表是系统关键字或者表名中含有空格时,需要用[]括起来,例如新建了两个表,分别为user,user info,那么select * from user和select * ...
- 《转》IIS中配置通配符应用程序映射
本文转载自龚赤兵 电子工业出版社,如给您带来不便之处,请联系博主. eb开发新体验:ASP.NET 3.5 MVC架构与实战>第13章网站部署,本章主要实现了如何在IIS 6.0中一步一步地成功 ...
- 【转】PowerDesigner使用方法小结
本文转自:http://www.cnblogs.com/afarmer/archive/2012/11/05/2755327.html PowerDesigner多用来进行数据库模型设计,具有SQL语 ...
- SQL Server集群服务器的优缺点
由二台或更多物理上独立的服务器共同组成的“虚拟”服务器称之为集群服务器.一项称做MicroSoft集群服务(MSCS)的微软服务可对集群服务器进行管理.一个SQL Server集群是由二台或更多运行S ...
- Price List
Price List Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/131072 K (Java/Others)Tota ...