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

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

     

  • 相关阅读:
    ConcurrentHashMap
    Linux中如何开启8080端口供外界访问 和开启允许对外访问的端口8000
    CentOs 7 Linux系统下我的/etc/sysconfig/路径下无iptables文件
    CentOS7开启SSH服务
    Centos7下Samba服务器配置
    CentOS7(Linux)网络yum源配置
    Linux(Centos7)中配置Java环境变量
    SpringAOP-什么是面向切面编程?
    Swagger Demo
    自定义个Bean名称生成策略, 解决不同包下同名类问题/AnnotationBeanNameGenerator
  • 原文地址:https://www.cnblogs.com/w821759016/p/11339618.html
Copyright © 2011-2022 走看看