• 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的简单使用,以上为本人的学习笔记,仅供参考,如有错误,欢迎纠正。

    喜欢本文章的朋友,欢迎关注公众号【程序员在职场】支持一下小编。

     

  • 相关阅读:
    ORACLE各种对象、概念及关系整理(一文读懂)
    Spring面试题总结及答案
    MySQL面试总结
    可变参数,你还为方法的参数而烦恼吗?可变参数,让你的头发从此“茂密”!
    java编译报错: 找不到或无法加载主类 Demo.class 的解决方法
    java编译报错 错误: 编码GBK的不可映射字符
    sql server2017开启远程连接
    sql server一些快捷方式和操作技巧
    sql server无法连接本地服务器
    phpStorm+xdebug调试(php7.3)
  • 原文地址:https://www.cnblogs.com/w821759016/p/11339618.html
Copyright © 2020-2023  润新知