本次是在MVC5中使用Autofac

第一步:程序包管理器控制台 Install-Package Autofac.MVC5 引入nuget包

这样成功之后,会在引用中出现两个DLL,分别是Autofac.dall Autofac.Integration.Mvc.dll

第二步:配置Autofac,并初始化

  代码如下:

  1. public class AutofacConfig
  2. {
  3. /// <summary>
  4. /// 初始化
  5. /// </summary>
  6. public static void Initialise()
  7. {
  8. //实例化一个autofac的创建容器
  9. var builder = new ContainerBuilder();
  10. //告诉Autofac框架,将来要创建的控制器类存放在哪个程序集
  11. Assembly controllerAss = Assembly.Load("****");
  12. builder.RegisterControllers(controllerAss);
  13.  
  14. //告诉autofac框架注册数据仓储层所在程序集中的所有类的对象实例
  15. Assembly respAss = Assembly.Load("DataP");
  16. //创建respAss中的所有类的instance以此类的实现接口存储
  17. builder.RegisterTypes(respAss.GetTypes()).AsImplementedInterfaces();
  18.  
  19. //告诉autofac框架注册业务逻辑层所在程序集中的所有类的对象实例
  20. Assembly serpAss = Assembly.Load("DataM");
  21. //创建serAss中的所有类的instance以此类的实现接口存储
  22. builder.RegisterTypes(serpAss.GetTypes()).AsImplementedInterfaces();
  23.  
  24. // builder.RegisterType<>().As<>();
  25.  
  26. //创建一个Autofac的容器
  27. var container = builder.Build();
  28. //将MVC的控制器对象实例 交由autofac来创建
  29. DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
  30.  
  31. }

第三步:实现注入启动

AutofacConfig.Initialise();

  1. public class MvcApplication : System.Web.HttpApplication
  2. {
  3. protected void Application_Start()
  4. {
  5. AreaRegistration.RegisterAllAreas();
  6. RouteConfig.RegisterRoutes(RouteTable.Routes);
  7.        //
  8. AutofacConfig.Initialise();
  9. }
  10.  
  11. }

第四步:在控制器中使用

  1. public class businessController : Controller
  2. {
  3. // GET: business
  4. private IBusinessService _businessService;
  5. public businessController(IBusinessService service)
  6. {
  7. this._businessService = service;
  8. }

在DoNetMVC中使用控制反转和依赖注入【DI】的更多相关文章

  1. 轻松了解Spring中的控制反转和依赖注入(二)

    紧接上一篇文章<轻松了解Spring中的控制反转和依赖注入>讲解了SpringIOC和DI的基本概念,这篇文章我们模拟一下SpringIOC的工作机制,使我们更加深刻的理解其中的工作. 类 ...

  2. Spring中的控制反转和依赖注入

    Spring中的控制反转和依赖注入 原文链接:https://www.cnblogs.com/xxzhuang/p/5948902.html 我们回顾一下计算机的发展史,从最初第一台计算机的占地面积达 ...

  3. 轻松了解Spring中的控制反转和依赖注入(一)

    我们回顾一下计算机的发展史,从最初第一台计算机的占地面积达170平方米,重达30吨,到现如今的个人笔记本,事物更加轻量功能却更加丰富,这是事物发展过程中的一个趋势,在技术领域中同样也是如此,企业级Ja ...

  4. spring(3)------控制反转(IOC)/依赖注入(DI)

    一.spring核心概念理解 控制反转: 控制反转即IoC (Inversion of Control).它把传统上由程序代码直接操控的对象的调用权交给容器.通过容器来实现对象组件的装配和管理. 所谓 ...

  5. 依赖倒置原则DIP&控制反转IOC&依赖注入DI

    依赖倒置原则DIP是软件设计里一个重要的设计思想,它规定上层不依赖下层而是共同依赖抽象接口,通常可以是上层提供接口,然后下层实现接口,上下层之间通过接口完全透明交互.这样的好处,上层不会因依赖的下层修 ...

  6. Spring 之 控制反转(IoC), 依赖注入(DI)和面向切面(AOP)

    关于依赖注入, 这篇博文写的非常简单易懂. https://github.com/android-cn/blog/tree/master/java/dependency-injection 此外, 博 ...

  7. .Net Core MVC 网站开发(Ninesky) 2.3、项目架构调整-控制反转和依赖注入的使用

    再次调整项目架构是因为和群友dezhou的一次聊天,我原来的想法是项目尽量做简单点别搞太复杂了,仅使用了DbContext的注入,其他的也没有写接口耦合度很高.和dezhou聊过之后我仔细考虑了一下, ...

  8. Java之控制反转和依赖注入

    1.简介 依赖注入和控制反转,目的是为了使类与类之间解耦合,提高系统的可扩展性和可维护性,下面通过一个例子来引入这一概念. 2.案例 1)一般情况下的类耦合 Main.java public clas ...

  9. Java 控制反转和依赖注入模式【翻译】【整理】

    Inversion of Control Containers and the Dependency Injection pattern --Martin Fowler 本文内容 Component ...

随机推荐

  1. ipa重签名最直接的教程

    ipa 包重签名最新最简单教程 重签名的意义:ipa 重签名最大的用处是,不必重新打包,和配置其它第三方获取 appkey 等操作,直接重签名之后依然可以拥有这些功能,更快的发布测试或者灰度版本. 本 ...

  2. 转 oracle 正则表达式和查询最大文件号 SQL

    ###sample 1 https://www.cnblogs.com/lxl57610/p/8227599.html Oracle使用正则表达式离不开这4个函数: 1.regexp_like 2.r ...

  3. 浅谈PageRank

    浅谈PageRank 2017-04-25 18:00:09 guoziqing506 阅读数 17873更多https://blog.csdn.net/guoziqing506/article/de ...

  4. Oracle Spatial分区应用研究之四:不同分区粒度+全局空间索引效率对比

    1.实验目的 在实验之前先回答这样一个问题——对同一份数据使用不同的分区粒度,但均创建全局空间索引,问:它们的全局空间索引一致吗? 怎样算是一致的呢?R-TREE的树结构一致算一致吗?空间索引条目数及 ...

  5. mysql全量+增量备份脚本

    cat xtrabackup_mysql.sh #!/bin/bash #title :xtrabackup_mysql.sh #description :backup mysql by using ...

  6. idea springboot启动报SLF4J:Failed to load class “org.slf4j.impl.StaticLoggerBinder”

    <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artif ...

  7. C++的菱形继承会发生什么问题?如何解决?画出其内存布局图

    菱形继承问题样例: #include <iostream> using namespace std; class A { public: ; virtual int getx() { re ...

  8. [转帖][区块链]共识算法(POW,POS,DPOS,PBFT)介绍和心得

    [区块链]共识算法(POW,POS,DPOS,PBFT)介绍和心得 置顶 2017-03-12 18:31:19 乐扣老师lekkoliu 阅读数 127953  收藏 更多 分类专栏: 技术管理 区 ...

  9. 对JavaEE的简单理解

    本文是在学习软件工程与J2EE课程时的学习笔记,旨在从大体的概念上了解Java EE的一些主要组件在Web应用中的作用. 上图精炼的描述了MVC模型以及Java EE的部分组件如何分布在一个Web应用 ...

  10. datanode启动异常(Incompatible clusterIDs)

    问题: 正常start-all.sh无法启动datanode进程,但是./hadoop-daemon.sh start datanode又可以启动.过一会后datanode进程又莫名消失. 原理: 多 ...