IOC的一个重点是在程序运行中,动态的向某个对象提供它所须要的其余对象。这一点是经过DI来实现的。Autofac则是比较流行的一款IOC容器。数据库
IoC和DI有什么关系呢?其实它们是同一个概念的不一样角度描述。编程
IOC—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想,一种面向对象编程法则,目的是程序解耦。框架
谁控制谁,控制什么?spa
传统程序设计,咱们直接经过new object()建立对象,是程序主动去建立依赖对象;而IoC是有专门一个容器来建立这些对象,即由Ioc容器来控制对象的建立。设计
为什么叫控制反转?对象
有反转就有正转,传统程序是咱们本身主动建立并控制依赖对象,叫正转。文档
而反转则是由容器来帮忙建立及注入依赖对象,由容器帮咱们查找及注入依赖对象,对象只是被动的接受依赖对象。io
DI—Dependency Injection,即“依赖注入”面向对象编程
好比对象A须要操做数据库,之前咱们老是要在A中本身编写代码来得到一个Connection对象,有了Autofac咱们就只须要告诉Autofac,A中须要一个Connection,至于这个Connection怎么构造,什么时候构造,A不须要知道。在系统运行时,Autofac会在适当的时候制造一个Connection,而后像打针同样,注射到A当中,这样就完成了对各个对象之间关系的控制。A须要依赖 Connection才能正常运行,而这个Connection是由Autofac注入到A中的,依赖注入的名字就这么来的。程序设计
Autofac是一个开源的依赖注入框架,经过NuGet安装:
中文文档https://autofaccn.readthedocs.io/zh/latest/
使用方法https://www.jianshu.com/p/f5d6346b0a7b
...