AutoFac的簡單使用教程


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的簡單使用,以上為本人的學習筆記,僅供參考,如有錯誤,歡迎糾正。

 

喜歡本文章的朋友,歡迎關注公眾號【程序員在職場】支持一下小編。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM