IOC和Autofac简单说明

本文介绍了IOC(控制反转)的概念和依赖注入DI的原理,阐述了IOC如何通过框架如Unity、MEF、Autofac、Spring来管理对象生命周期。Autofac作为.NET领域的流行IOC框架,以其简单易学和丰富的特性受到青睐。文章通过实例展示了如何在ASP.NET MVC项目中集成和使用Autofac,强调了IOC带来的解耦和灵活性,同时也指出了其可能带来的学习成本和运行效率损耗。
摘要由CSDN通过智能技术生成

一、IOC控制反转

 1、IOC的概念

  • IOC-Invertion of Control,即控制反转,是一种程序设计思想。
  • 依赖(Dependency):就是有联系,表示一个类依赖于另一个类。
  • 依赖倒置原则(DIP):设计模式六大原则之一,是一种软件架构设计原则。
  • 控制反转(IOC):一种软件设计原则,上层对下层的依赖(即底层模块的获得)交给第三方。
  • 依赖注入(DI):实现IOC的一种方式、手段。
  • IOC容器:依赖注入的框架,用来映射依赖,管理对象创建和生存周期。

 2、IOC的原理

  • 反射概念:反射概念反射是一种编程的方式,让程序员可以在程序运行期间获得程序(Assembly)、模块(Module)、类型(class)的组成部分的相关信息,查找类型信息,并创建该类型的实例。
  • 当一个类的实例需要另一个类的实例协助时,在传统的程序设计过程中,通常有调用者来创建被调用者的实例。然后,采用依赖注入原则,创建被调用者的实例的工作不再由调用者完成,而是由IOC容器来完成,这就是“控制反转”的意思,然后,将其注入调用者,因此也称为“依赖注入”。
  • IOC中实例化对象默认是单例模式。
  • 依赖注入的核心是靠反射的原理实现。

3、依赖注入IOC常用的框架

  • Unity       MEF       Autofac       Spring

4、IOC优点

  • 动态创建、注入依赖对象。
  • 管理对象生命周期。
  • 映射依赖关系。
  • 实现组件之间的解耦,提高程序的灵活性和可维护性

5、IOC缺点

  • 在刚开始使用IOC框架的时候会感觉系统变的不直观。引入一个全新的框架,会增加团队成员学习成本,并且在以后的运行维护中还要让新加入者具备同样的知识体系。
  • 由于IOC容器生成对象是通过反射方式,在运行效率上有一定的损耗。
  • 具体到IOC框架产品(比如:Autofac)需要进行大量配置工作比较繁琐,对于一些小的项目而言客观上也可能加大一些工作成本。
  • IOC框架产品本身的成熟度需要进行评估,如果引入一个不成熟的IOC框架产品,可能会影响到整个所以这也是一个隐形的风险。

二、Autofac简述

1、Autofac

  • Autofac是.NET领域最为流行的IOC框架之一。
  • Autofac框架依赖于Autofac.dll和Autofac.Integration.Mvc.dll文件。

优点:

  • 跟C#语言联系紧密,C#里的很多编程方式都可以为Autofac使用。
  • 学习简单,只要理解IOC和DI的概念以及在何时需要使用它们。
  • XML、属性配置。
  • 与Asp.Net Mvc集成。

2、Autofac使用

  • 获取AutoFac,可以通过各种方式加载它:通过VS中的NuGet来加载AutoFac,添加Autofac.dll,Autofac.Configuration.dll两个程序集引用到项目中。
  • 新建一个MVC项目,使用nuget安装autofac,需要安装autofac和autofac ASP.NET Mvc5 Intergration 如下:

  • 安装完成后引用里面就多了Autofac.dll和 Autofac.Integration.Mvc.dll文件。
  • 在WEBAPI里使用需要安装Autofac ASP.Net Web API2.2Intergration才可以。

3、AutoFac使用

 4、AutoFac使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值