Autofac可以對代碼進行依賴注入,實現控制反轉。以下是本菜鳥在初次入門時的代碼配置,其源碼,內部原理都還有待日后研究。目前也只是僅僅做到了能夠使項目正常使用而已。
跟我一樣剛剛入門的菜鳥朋友們可以借鑒一下。
一、使用NuGet進行引用添加
1. Autofac 4.9.3
2. Auto.Mvc5 4.0.2
二、Global.asax.cs 配置
public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); //配置AutoFac var builder = new ContainerBuilder(); //把當前程序集中的Controller都注冊 ->需要安裝AutoFac.Mvc5 builder.RegisterControllers(typeof(MvcApplication).Assembly) .PropertiesAutowired(); //注冊Serivce 加載Service所在的程序集 Assembly[] assemblies = new Assembly[] { Assembly.Load("Ant.Crm.Admin") }; //條件:只注冊繼承了BaseService的Service builder.RegisterAssemblyTypes(assemblies).Where(type=>!type.IsAbstract && typeof(BaseService).IsAssignableFrom(type)); var container = builder.Build(); //注冊系統級別的DependencyResolver,這樣當MVC框架創建Controller等對象的時候都是管Autofac要對象 !!! //->需要安裝AutoFac.Mvc5。 DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); } }
目錄結構:
三、使用
1. 依照配置,需要將所有的Service都繼承自BaseService,如圖:
2. 在Controller中使用已經注冊到Autofac中的Service(構造器注入),如圖:
OK,這就是Autofac的簡單使用,以上為本人的學習筆記,僅供參考,如有錯誤,歡迎糾正。
喜歡本文章的朋友,歡迎關注公眾號【程序員在職場】支持一下小編。