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
...