首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

Prism 依賴注入容器核心:IContainerFacade、Unity 整合、效能與單例策略

     編輯:關於.NET

為何需要 DI 容器

模組間鬆耦合仍需合作,DI 容器扮演橋梁:創建組件時自動注入依賴,避免直接引用。優點:

  • 組件無需自行定位與管理依賴生命週期
  • 替換實現不影響組件代碼
  • 依賴易 Mock,提升可測試性
  • 新增服務容易,降低維護難度

Prism 容器抽象:IContainerFacade

為相容多種容器,Prism 定義 IContainerFacade,僅暴露 Resolve、TryResolve。預設使用 Unity Container(支援建構子/屬性/方法注入),並以 UnityContainerAdapter 適配 TryResolve。

效能考量

容器解析基於反射,頻繁創建大量實例或深層依賴嵌套會影響效能。無依賴、無被依賴的組件不宜放入容器。

單例註冊策略

  • 單例:全域服務、共享狀態(ContainerControlledLifetimeManager)
  • 暫態:每次注入需新實例

IUnityContainer vs IContainerFacade

IContainerFacade 僅提供解析,缺乏註冊功能。大多數情況建議用 IUnityContainer,除非:

  • 開發多容器支援的 ISV 元件
  • 服務運行於多容器環境

代碼配置 vs 配置檔

引用 Martin Fowler 觀點:

  • 簡單應用、部署變化少 → 代碼配置更清晰
  • 複雜組裝邏輯 → 配置檔(或 Builder 模式)更適合
  • 非程式人員修改配置機率低,複雜配置宜用程式語言
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved