本書的第四部分探討 DI Container 這個可選但強大的工具——一種能夠自動化 Object Composition、Interception 和 Lifetime Management 的軟體函式庫。在前三部分以 Pure DI 建立堅實基礎後,本部分深入介紹何時該使用 DI Container、如何正確使用,以及三個主流容器的特性比較。

第十二章從概念層面剖析 DI Container 的核心價值——Auto-Wiring(自動分析建構函式並遞迴解析依賴)與三種配置方式(Configuration Files、Configuration as Code、Auto-Registration)。書中客觀分析了 DI Container 與 Pure DI 的取捨,給出明確建議:當 Auto-Registration 能帶來顯著價值(如大型應用程式)時使用容器,否則 Pure DI 就已足夠。

第十三章介紹 Autofac,一個功能豐富的 DI Container。其特色是兩階段設計(ContainerBuilder 配置 → Build 產生 IContainer)、反向的註冊語法(具體類型 → 抽象介面),以及完整的 Decorator 和 Composite 支援。

第十四章介紹 Simple Injector,由本書共同作者 Steven van Deursen 所創建的容器。其設計哲學強調安全性與正確性:泛型型別約束提供編譯期檢查、Ambient Scope 防止記憶體與並行問題、內建的 Verify() 方法能偵測 Captive Dependencies 等常見錯誤。

第十五章則以批判性視角檢視 Microsoft.Extensions.DependencyInjection (MS.DI)。作者認為它功能過於有限——缺乏 Decorator/Composite 支援、無 Auto-Registration、無驗證機制——並指出其設計初衷是作為框架開發者的最小公約數容器,而非完整的應用程式級 DI 解決方案。