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中的注入方式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章