据我所知,IServiceLocator是一个抽象实际IoC容器的接口?我正在询问Prism与我正在尝试replace Unity with Prism的关系,我看到Prism-classes依赖于IServiceLocator。有人可以澄清界面的作用以及何时使用它?
还;什么是Common Service Locator,在使用IServiceLocator时这会有用吗?
答案 0 :(得分:12)
IServiceLocator是服务定位器的抽象。 IoC容器是服务定位器的一种超集,因此它们可以由IServiceLocator表示。但是,服务定位器模式比纯依赖注入模式更具侵入性,因此您应尽可能尝试使用后者。
CommonServiceLocator提供IServiceLocator接口和此接口的抽象实现,以定义常见行为并帮助IoC容器定义其IServiceLocator适配器(每个主要IoC容器都提供此类适配器)。
另见: