Category: Autofac

好久沒寫 Autofac 筆記,記錄一則最近遇到的小需求。系統中針對介面(例如:IBlah)實作了多個型別,Resolve<IBlah>() 時希望透過參數指定傳回不同型別。 依據官方文件,實現這類需求的最簡單做法是使用 Named Service(具名服務)或 Keyed Ser...

前面談過傳入建構參數,但並非所有物件參數都可由建構式傳入,有些要透過屬性指定(例如: new MyObject() { SomeProperty = SomeValue };),而這也是IoC/DI的工作職掌之一,專業術語叫Property Injection(屬性注入)。 解說前先介紹幾個測...

在先前的範例(1 2),透過Resolve<T>()建立的物件都只有單一建構式且不需建構參數,如果有多個建構式或建構時需要建構參數時,Autofac會如何處理? 當類別有多個建構式時,Autofac會依"能符合最多個容器提供參數的建構式優先"做為選擇依據。其英文原...

在使用IoC設計模式時,有一個有點難懂卻不能迴避的問題 -- 如何妥善管理物件生命週期,避免記憶體洩漏(Memory Leak)? 要了解此議題,先大推一篇關於Autofac物件生命週期的經典文章,其中有頗詳細的闡述,這篇筆記只簡短摘要我實際應用的心得,關於完整說明推薦大家參考原文。 問題從...

開始前先聲明(坦白從寬~),我對Design Pattern的研究十分淺薄,寫起IoC、Singleton的題材有種越級打怪的心虛感,我知道本部落格有不少讀者深諳此道,如筆記有疑或有誤之處,懇請十方大德不吝指正。 Singleton是挺常見的設計模式,旨在確保該型別於Process中只會產生單...

決定在專案引進IoC,端午假期在網路上划龍舟,做了些研究。忘性愈來愈大,故筆記不可少,就順便跟大家分享。(對於IoC,我仍在初學摸索階段,諸位先進如發現有誤入歧途之處,還請指正) 【IoC?】 IoC是什麼? DI又是什麼? 很多.NET領域的老師及同學已深入研究並有專文介紹,此處不再班門弄...