程序中看到
return ServiceLocator.Current.GetInstance<TService>();
ServiceLocator为系统接口,只提供GerService方法,个人觉的是为了提供统一的形式而已。
没有找到怎么在程序集之间提供这种服务的源码,网上也没有搜到怎么实现的。
但是做框架时肯定不会预先知道服务的类型,只能以某种形式来识别特定的数据,作为提供唯一服务的形式。
个人理解某一种实现形式如下:
1、服务类型以某一关键字标示(如结尾为Service,等),用于识别。
2、根据反射等形式创建XXService类的实例。
3、服务以单例模式出现。
在框架初始化时,根据生成的DLL遍历里面的类型(识别以Service结束的类型),创建服务的实例,并存储。
使用时根据提供的统一接口ServiceLocator.Current.GetInstance<TService>()进行获取。
PS:有实际怎么实现的请说明,非常感谢!