Mini 容器介绍
背景
最早在開發Mbs 中的插件架構時用服務定位器和服務注冊表來屏蔽各大DI容器的差異,后來為了更深入的研究DI 容器的內部實現機制,便開發了Mbs DI容器->Mini容器前身,在開發過程中借鑒了Castle,Unity,Ninject,StructureMap,Spring等思想尤其是Castle容器的工廠以及生命周期管理器等思想。最近一段時間不太忙便重新整理Mbs框架,由于Mbs框架命名不是太好(最早是開發消息總線的),不能描述框架具體包含什么內容,于是便開發Nlite 框架,該框架旨在提供一個輕量級的組件庫(DI,Aop,MessageBus, MVP,AddIn,OO Mapper,國際化)等 ,剛開始便拿最核心的DI容器進行開刀,吸收和借鑒MEF中的插件思想來進行打造,該DI容器經過了幾個項目的驗證,并做了很詳細的單元測試,代碼覆蓋率達到90%多,為DI容器的穩定性打下了堅實的基礎。通過開發DI容器以及AOP,在很多方面都有了新的認識,如果不是親自開發過很多思想是很難體會的。
Mini 容器默認支持以下幾種組件注冊機制
- Attribute 注冊
- 流暢Api 注冊
- 代碼注冊
- 自定義注冊
Mini 容器所支持以下幾種生命處理方式
- Singleton :單利
- Thread:對于每一個線程來說是使用了Singleton,也就是每一個線程得到的都是同一個實例
- Transient:每次的請求得到的都是一個新的實例
- Generic Singleton :泛型單利
- Generic Thread :泛型線程內單利
- Generic Transient:泛型臨時
Mini 容器缺省提供以下幾種依賴注入方式
- 構造函數注入
- 字段注入
- 屬性注入
- 方法注入
Mini 容器所支持以下幾種組件工廠
- 缺省工廠
- 工廠方法工廠
- 代理工廠(供Aop使用)
- 實例工廠(該工廠僅僅提供駐留外部組件實例)
- 自定義工廠
組件監聽器的監聽階段(LifestyleStage)
- OnComponentMetadataRegistered - 組件元數據被注冊后
- OnComponentCreated - 組件創建后
- OnComponentDestroying - 組件釋放中
- OnComponentDestroyed -組件釋放后
Mini 容器通過組件監聽器可以對DI容器進行擴展,系統缺省提供以下組件監聽器
- SupportInitializeListner :組件初始化監聽器
- InitializationListner :組件初始化監聽器
- DisposalListner :組件釋放監聽器
- StartableListner :組件啟動/停止監聽器
- AopListner :Aop監聽器
轉載于:https://www.cnblogs.com/netcasewqs/archive/2010/07/06/1772255.html
總結
- 上一篇: SqlServerDBHelper类
- 下一篇: 生成不重复的随机数的三种方法