ASP.NET MVC 3如何让依赖注入实现得更简单
发表于:2025-11-21 作者:千家信息网编辑
千家信息网最后更新 2025年11月21日,本篇文章为大家展示了ASP.NET MVC 3如何让依赖注入实现得更简单,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。我没有找到一个完整的示例,只有一些代码片
千家信息网最后更新 2025年11月21日ASP.NET MVC 3如何让依赖注入实现得更简单
本篇文章为大家展示了ASP.NET MVC 3如何让依赖注入实现得更简单,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
我没有找到一个完整的示例,只有一些代码片断,于是,我将其整理了一翻,也有一点点个人的心得,拿出来,与大家分享一下,
如遇高人请不吝赐教,下面是代码片断。
1、实现 MVC3 Beta 中提供的依赖注入接口 IDependencyResolver ,MyDependencyResolver.cs 的代码:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using Microsoft.Practices.Unity; namespace Demo { public class MyDependencyResolver : IDependencyResolver { #region IDependencyResolver 成员 /// /// 依赖注入容器 /// private UnityContainer _unityContainer; /// /// 构造 /// /// 依赖注入容器 public MyDependencyResolver( UnityContainer aUnityContainer ) { _unityContainer = aUnityContainer; } public object GetService( Type aServiceType ) { try { return _unityContainer.Resolve( aServiceType ); } catch { /// 按微软的要求,此方法,在没有解析到任何对象的情况下,必须返回 null,必须这么做!!!! return null; } } public IEnumerable2、在 Global.asax.cs 中设置依赖注入解析器 DependencyResolver (这是一个全局静态类,也是 MVC3 Beta 新增的):
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; using Microsoft.Practices.Unity; namespace Demo { // Note: For instructions on enabling IIS6 or IIS7 classic mode, // visit http://go.microsoft.com/?LinkId=9394801 public class MvcApplication : System.Web.HttpApplication { public static void RegisterGlobalFilters( GlobalFilterCollection filters ) { filters.Add( new HandleErrorAttribute( ) ); } public static void RegisterRoutes( RouteCollection routes ) { routes.IgnoreRoute( "{resource}.axd/{*pathInfo}" ); routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); } protected void Application_Start( ) { AreaRegistration.RegisterAllAreas( ); RegisterGlobalFilters( GlobalFilters.Filters ); RegisterRoutes( RouteTable.Routes ); //设置依赖注入 RegisterDependency( ); } private static UnityContainer _Container; public static UnityContainer Container { get { if ( _Container == null ) { _Container = new UnityContainer( ); } return _Container; } } protected void RegisterDependency( ) { Container.RegisterType( ); DependencyResolver.SetResolver( new MyDependencyResolver( Container ) ); } } } 3、Controller的代码,HomeController.cs:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using Microsoft.Practices.Unity; namespace Demo.Controllers { public class HomeController : Controller { [Dependency] public ITest Test { get; set; } public ActionResult Index( ) { ViewModel.Message = Test.GetString( ); return View( ); } public ActionResult About( ) { return View( ); } } }4、ITest.cs代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Demo { public interface ITest { string GetString( ); } }5、Test.cs代码:
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Demo { public class Test:ITest { #region ITest 成员 public string GetString( ) { return "Run demo!"; } #endregion } }***** 注意,这篇文章只适用于 ASP.NET MVC3 Beta 版,将来正式版出来了,未必采用这种方式来实现,毕竟对于依赖注入这块,
从 MVC1 -> MVC3 Preview1 -> MVC3 Beta 一直都在变化。
上述内容就是ASP.NET MVC 3如何让依赖注入实现得更简单,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
代码
内容
容器
对象
情况
成员
技能
此方法
片断
知识
篇文章
微软
简明
不吝赐教
简明扼要
个人
全局
只有
就是
心得
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
华为 网络安全实验室
网络技术应用是哪一年开始的
db2 怎么恢复数据库
服务器 pcie
网络安全与自由
数据库表数据的插入
编程与网络安全有关系吗
市网络安全和信息化中心
信息化软件开发设施有哪些
软件工程中软件开发流程
天水市建二小学网络安全
哈工大 数据库
数据库运维大神
window自带数据库吗
移动网络安全的论文
arma3怎么弄中国的服务器
数据库技术新特点
安卓软件开发原理
单片机的软件开发工具有哪些
uos服务器如何开放端口
在数据库系统结构中
第二届网络安全精英赛海南赛区
软件开发师的工作内容
象山财务软件开发怎么样
企业网络安全执法检查
大众化定制软件开发如何做好营销
网络安全从哪些方面保证
dropbox服务器
网络安全法律热点
软件开发培训机构招生技巧