AutoFac MVC结合

AutoFac在MVC中有特定的插件,可以简化MVC程序的开发。

安装使用nuget命令为 Install-Package Autofac.Mvc5 

在Global中需增加配置方法

1.这一步是必须的了获取IOC容器实例

			//Autofac注册
			//创建autofac管理注册类的容器实例
			var builder = new ContainerBuilder(

2把当前执行代码的所有程序集注册

//对当前代码程序集的控制器进行注册
builder.RegisterControllers(Assembly.GetExecutingAssembly()).AsImplementedInterfaces().PropertiesAutowired();
//对当前代码相关类库中的程序集进行注册
builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly()).AsImplementedInterfaces().PropertiesAutowired();
//注册所有过滤器
builder.RegisterFilterProvider();//注册所有过滤器

一般可以使用反射的方式把相关类库中的程序集进行注册  定义一IDependency接口,需要通过AutoFac来解析的接口都继承此口,那么我们就可以解析所有此接口相关的方法

//注册所有的M开头的dll
Assembly[] assemblies = Directory.GetFiles(AppDomain.CurrentDomain.RelativeSearchPath, "M*.dll").Select(Assembly.LoadFrom).ToArray();
//注册所有实现了 IDependency 接口的类型
Type baseType = typeof(IDependency);
builder.RegisterAssemblyTypes(assemblies)
	   .Where(type => baseType.IsAssignableFrom(type) && !type.IsAbstract)
	   .AsSelf().AsImplementedInterfaces()
	   .PropertiesAutowired().InstancePerLifetimeScope();

var container = builder.Build();

//注册系统级别的 DependencyResolver,这样当 MVC 框架创建 Controller 等对象的时候都是管 Autofac 要对象

DependencyResolver.SetResolver(new AutofacDependencyResolver(container));//下面就是使用MVC的扩展 更改了MVC中的注入方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值