zoukankan      html  css  js  c++  java
  • Autofac使用代码

    Autofac 的使用
    --工厂使用autofac.dll来代替 ,实现面向接口编程(IOC-控制反转,DI-依赖注入)

    控制反转
    依赖注入

    autofac.dll 是实现了控制反转和依赖注入思想的一套组件
    在MVC中,当网站启动的时候,应该在application_start()方法调用autofac.dll的一些列
    方法对dal层和bll层进行注册
    在运行过程中指定dal和bll层的程序集名称,自动去bin目录扫描

    1、将dal和bll层的实现项目的生成路径修改为:..UInamespacein
    2、application_start()写代码调用

    引用Autofac.dll 和 Autofac.Integration.Mvc.dll

    修改BLL 和 DAL dll 生成输出路径 到 UI (..UInamespacein)

    UI Global.asax 中 AutofacConfig.Register();

    using Autofac;
    using System.Reflection;
    using Autofac.Integration.Mvc;
    using System.Web.Mvc;
    using IBLL;
    using common;
    public class AutoFacConfig
    {
    public static void Register()
    {
    //1.0 构造一个容器创建者对象
    var bulider = new ContainerBuilder();

    //2.0 告诉bulider将来控制器类去哪些程序中扫描
    Assembly controllerAss = Assembly.Load("crm.Site");
    bulider.RegisterControllers(controllerAss);

    //3.0 告诉bulider将itcast.crm18.Dal中的所有类创建其对象实例存储在autofac的内部
    //以此类的接口形式进行存储
    Assembly dalAss = Assembly.Load("crm.DAL");
    bulider.RegisterTypes(dalAss.GetTypes()).AsImplementedInterfaces();

    //4.0 告诉bulider将itcast.crm18.Services中的所有类创建其对象实例存储在autofac的内部
    //以此类的接口形式进行存储
    Assembly servicesAss = Assembly.Load("crm.BLL");
    bulider.RegisterTypes(servicesAss.GetTypes()).AsImplementedInterfaces();

    //5.0 创建一个autofac的正真容器
    IContainer container = bulider.Build();
    //aotufac容器有一个方法在后面验证登录取cookie对象用
    //aotufac容器有意个方法Resolve(),只需要提供一个借口名称 就能以接口的形式返回实现了这个接口的子类对象
    //IsysUserInfoBLL userinfo= container.Resolve();
    //5.01将容器存入缓存里 (全局缓存)方便后面取出来使用
    CheckManager.SetData(Keys.Autofac, container);
    //获取autofac容器对象
    // CheckManager.GetData(Keys.Autofac);
    //6.0 将container交给MVC底层调用替换DefaultControllerFactory进行工作
    DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
    }
    }

    转载于:https://www.cnblogs.com/dianshen520/p/4349148.html

  • 相关阅读:
    HDU 1176 免费馅饼(DP)
    微通道的兵锋 阿里将血腥
    head first c<11>在根据网络编程
    ZOJ 3795 Grouping(Tarjan收缩点+DAG)
    【设计和算法分析】3、二进制搜索
    杨:联想的创新将成为打造最酷的助推力的重要器件
    android 如何将电话簿SDN数字和其他普通的数字混合在一起?
    redhat6.3已安装was6.1你可以不弹出安装程序
    Android属于查询执行情况的电话号码
    table在 点击线条颜色
  • 原文地址:https://www.cnblogs.com/wamgzuo/p/15471307.html
Copyright © 2011-2022 走看看