【寫在前面】嘗試做完一件工作之外自我覺得有意義的一件事,那就從翻譯Autofac的幫助文檔吧。

入門指南

將Autofac集成你的應用程序的步驟通常很簡單,一般是:

  • 時刻以IOC(控制反轉(zhuǎn))的思想來規(guī)劃你的應用程序

  • 在你的Porject中添加Autofac引用

  • 按照如下步驟設計應用程序的啟動環(huán)節(jié)

    • 創(chuàng)建一個ContainerBuilder

    • 向ContainerBuilder注冊組件

    • 通過ContainerBuilder的Build()方法獲得Container(后續(xù)需用到)

  • 在應用程序運行環(huán)節(jié)時,按如下步驟執(zhí)行

    • 通過Container獲得一個lifetime scope

    • 通過lifetime scope解析出組件實例

    • 通過實例繼續(xù)執(zhí)行

本篇將通過入門指南實現(xiàn)一個簡單的Console應用程序,一旦有了基礎,后續(xù)可以延伸集成WCF、ASP.NET等等。

規(guī)劃應用程序

先簡單解釋一下IOC(控制反轉(zhuǎn))。
通常情況下,類A若需要類B的一些功能,則在類A中需要通過“new”操作來完成創(chuàng)建和使用功能,這樣在代碼層面就固定住了類A和類B之間的相互依賴關系。這樣的“依賴”,在后續(xù)的重構(gòu)或修改時,影響面很大。
而IOC(控制反轉(zhuǎn))的思維,則是取消,由類A來創(chuàng)建類B,變更為在執(zhí)行期間,由IOC容器來根據(jù)需要和約定自動創(chuàng)建類B來給類A使用。

Martin Fowler有一篇著名的文章,解釋何謂IOC,可以點擊“鏈接”查看。

在本篇的示例中,我們將定義一個類,這個類可以輸出一些數(shù)據(jù);但我們不想和Console綁定住,因為我們并不能確定在實際使用過程中Console是否真的可用。

我們通??梢赃@樣實現(xiàn):

 

網(wǎng)友評論

  • <blockquote id="fdwnp"></blockquote>