程序中看到
return ServiceLocator.Current.GetInstance<TService>();
ServiceLocator爲系統接口,只提供GerService方法,個人覺的是爲了提供統一的形式而已。
沒有找到怎麼在程序集之間提供這種服務的源碼,網上也沒有搜到怎麼實現的。
但是做框架時肯定不會預先知道服務的類型,只能以某種形式來識別特定的數據,作爲提供唯一服務的形式。
個人理解某一種實現形式如下:
1、服務類型以某一關鍵字標示(如結尾爲Service,等),用於識別。
2、根據反射等形式創建XXService類的實例。
3、服務以單例模式出現。
在框架初始化時,根據生成的DLL遍歷裏面的類型(識別以Service結束的類型),創建服務的實例,並存儲。
使用時根據提供的統一接口ServiceLocator.Current.GetInstance<TService>()進行獲取。
PS:有實際怎麼實現的請說明,非常感謝!