C#中提供服务方式ServiceLocator

程序中看到

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

ServiceLocator为系统接口,只提供GerService方法,个人觉的是为了提供统一的形式而已。

 

没有找到怎么在程序集之间提供这种服务的源码,网上也没有搜到怎么实现的。

但是做框架时肯定不会预先知道服务的类型,只能以某种形式来识别特定的数据,作为提供唯一服务的形式。

 

个人理解某一种实现形式如下:

1、服务类型以某一关键字标示(如结尾为Service,等),用于识别。

2、根据反射等形式创建XXService类的实例。

3、服务以单例模式出现。

 

在框架初始化时,根据生成的DLL遍历里面的类型(识别以Service结束的类型),创建服务的实例,并存储。

使用时根据提供的统一接口ServiceLocator.Current.GetInstance<TService>()进行获取。

 

PS:有实际怎么实现的请说明,非常感谢!

 

 

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