C#中提供服務方式ServiceLocator

程序中看到

return ServiceLocator.Current.GetInstance<TService>();

ServiceLocator爲系統接口,只提供GerService方法,個人覺的是爲了提供統一的形式而已。

 

沒有找到怎麼在程序集之間提供這種服務的源碼,網上也沒有搜到怎麼實現的。

但是做框架時肯定不會預先知道服務的類型,只能以某種形式來識別特定的數據,作爲提供唯一服務的形式。

 

個人理解某一種實現形式如下:

1、服務類型以某一關鍵字標示(如結尾爲Service,等),用於識別。

2、根據反射等形式創建XXService類的實例。

3、服務以單例模式出現。

 

在框架初始化時,根據生成的DLL遍歷裏面的類型(識別以Service結束的類型),創建服務的實例,並存儲。

使用時根據提供的統一接口ServiceLocator.Current.GetInstance<TService>()進行獲取。

 

PS:有實際怎麼實現的請說明,非常感謝!

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章