依赖注入容器Autofac和 ASP.NET MVC 3 的集成
2011-05-20 08:35
751 查看
首先,推荐使用Visual Studio 2010 中的NuGet 组件,在MVC 项目中,来安装和添加对Autofac ASP.NET MVC3 Integration 组件的引用,具体操作可参考《使用NuGet 来管理Visual Studio的开源组件(Package)》。
在上述步骤完成之后,在项目的Global.asax文件中,实施对Controller的依赖注入。
在Global.asax中,需要添加如下2个命名空间的引用:
?
在Application_Start() 方法中添加如下代码:
?
其中SetupResolveRules() 是我们自定义的方法,用来建立Interface和Class之间的关联,代码如下:
?
不过,如果项目中有比较多的Interface 和Class需要建立关联,则需要逐条在上述方面中添加。这样,增加了后期的一些维护工作。
下面提供了另外一种方法,将当前运行的Assembly中所有以Repository结尾的Class 和其所实现的Interface进行关联。
?
上述代码的范例程序(ASP.NET MVC 3 + Autofac)下载地址:
http://download.csdn.net/source/3234339
范例程序的运行界面如下:
相关文档,可参考如下链接:
Integrating with ASP.NET MVC 3.0,http://code.google.com/p/autofac/wiki/Mvc3Integration
ASP.NET MVC 2 开发实战
IoC 容器 — Autofac,http://www.entlib.net/?p=23
在上述步骤完成之后,在项目的Global.asax文件中,实施对Controller的依赖注入。
在Global.asax中,需要添加如下2个命名空间的引用:
?
123 | using Autofac; using Autofac.Integration.Mvc; |
?
12345678910111213141516171819202122232425262728293031 | protected void Application_Start() { var builder = new ContainerBuilder(); SetupResolveRules(builder); // use a provided extension method to register all the controllers in an assembly builder.RegisterControllers(Assembly.GetExecutingAssembly()); // create a new container with the component registrations IContainer container = builder.Build(); // use the static DependencyResolver.SetResolver method // to let ASP.NET MVC know that it should locate services // using the AutofacDependencyResolver DependencyResolver.SetResolver( new AutofacDependencyResolver(container)); AreaRegistration.RegisterAllAreas(); RegisterGlobalFilters(GlobalFilters.Filters); RegisterRoutes(RouteTable.Routes); } |
?
1234567891011 | private void SetupResolveRules(ContainerBuilder builder) { //Components are wired to services using the As() methods on ContainerBuilder builder.RegisterType<MessageRepository>().As<IMessageRepository>(); builder.RegisterType<MemberRepository>().As<IMemberRepository>(); } |
下面提供了另外一种方法,将当前运行的Assembly中所有以Repository结尾的Class 和其所实现的Interface进行关联。
?
123456789101112131415 | private void SetupResolveRules(ContainerBuilder builder) { // Speficy that a type from a scanned assembly is registered // as providing all of its implementation interfaces. builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly()) .Where(t => t.Name.EndsWith( "Repository" )) .AsImplementedInterfaces(); } |
http://download.csdn.net/source/3234339
范例程序的运行界面如下:
相关文档,可参考如下链接:
Integrating with ASP.NET MVC 3.0,http://code.google.com/p/autofac/wiki/Mvc3Integration
ASP.NET MVC 2 开发实战
IoC 容器 — Autofac,http://www.entlib.net/?p=23
相关文章推荐
- ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下
- 依赖注入框架Autofac的简单使用,以及在 ASP.NET MVC 中的使用
- Ninject--ASP.NET MVC 3中的依赖注入容器
- ADO.NET .net core2.0添加json文件并转化成类注入控制器使用 简单了解 iTextSharp实现HTML to PDF ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下 C# AutoMapper 了解一下
- Asp.Net MVC 之 Autofac 初步使用2 集成mvc 属性注入以及自动注入
- Asp.Net Mvc使用Autofac实现依赖注入
- ASP.NET MVC 5 (七-1)依赖项注入(DI)容器-Ninject
- asp.net mvc Autofac 依赖注入框架 使用
- Asp.Net MVC 之 Autofac 初步使用2 集成mvc 属性注入以及自动注入
- 使用AutoFac在ASP.NET Web API上实现依赖注入
- ASP.NET MVC中使用Unity进行依赖注入的三种方式
- ASP.NET MVC中Autofac实现的自动注入模式
- Asp.net mvc 集成Autofac和FluentValidation
- ASP.NET Web Application 中使用 Unity 依赖注入容器
- ASP.NET MVC中Autofac实现的自动注入模式
- [ASP.NET MVC 小牛之路]04 - 依赖注入(DI)和Ninject
- Asp.mvc(三) ~ 使用 Autofac 实现依赖注入
- 在ASP.NET MVC中使用Unity进行依赖注入的三种方式
- ASP.NET Core 中文文档 第四章 MVC(4.4)依赖注入和控制器
- 使用Autofac在ASP.NET Web API上实现依赖注入