2010-04-12 39 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