asp.net 非.net core項目添加autofac,實現控制反轉

1.添加nuget包autofac,如果web項目爲mvc的,還需要一個autofac.mvc包

2.創建一個autofac注入類:AutoFacConfig,名字按自己的命名習慣起即可:

public class AutoFacConfig
    {
        public static void Register()
        {
            var builder = new ContainerBuilder();

            builder.RegisterControllers(Assembly.GetCallingAssembly());//註冊mvc的Controller

            
            //注入BLL,UI中使用
            builder.RegisterAssemblyTypes(Assembly.Load("Gdky.TJ.Bll"))
                .AsImplementedInterfaces()  //是以接口方式進行注入
                .InstancePerRequest();       //每次http請求

            //注入DAL,BLL層中使用
            builder.RegisterAssemblyTypes(Assembly.Load("Gdky.TJ.Dal")).AsImplementedInterfaces()
                .InstancePerRequest(); 

            //Cache的注入,使用單例模式
            //builder.RegisterType<RedisCacheManager>()
            //    .As<ICacheManager>()
            //    .SingleInstance()
            //    .PropertiesAutowired();

            var container = builder.Build();
            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
        }
    }

這種注入方式,需要bll層生成的dll文件在web項目的bin目錄下。

3.在全局Global.asax中配置一下,使其在項目啓動的時候完成注入

 public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            AutoFacConfig.Register();//autofac:控制反轉,依賴注入配置
        }
    }

 

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