2010-04-12 83 views

回答

12

IServiceLocator是服务定位器的抽象。 IoC容器是一种服务定位器的超集,因此它们可以由IServiceLocator来表示。但是,服务定位器模式比纯粹的依赖注入模式更具侵入性,因此应尽可能地倾向于后者。

CommonServiceLocator提供IServiceLocator接口和该接口的抽象实现来定义常见行为,并帮助IoC容器定义它们的IServiceLocator适配器(每个主要IoC容器都提供这样的适配器)。

参见:

+0

THX!好答案。虽然找不到Ninject的IServiceLocator适配器,但它可能不被认为是主要的? (ref *(每个主要的IoC容器提供了这样的适配器)*) – stiank81 2010-04-12 17:46:06

+0

参见http://github.com/enkari/ninject/tree/2.0.0.0/src/CommonServiceLocator.NinjectAdapter/ – 2010-04-12 18:14:52

+0

Cool-thx。我自己虽然已经写了同样的东西.. – stiank81 2010-04-12 19:18:39