2012-05-26 53 views

回答

14

這是更好地注入依賴,而不是解決這些問題的。服務定位器是一種反模式。你可以例如使用以下內容:

IMyService myService = DependencyResolver.Current.GetService<IMyService>(); 

但請不要使用它。這是一種反模式。

依賴注入是首選的方法。您應該讓需要此依賴項的類的構造函數採取IMyService而不是讓類獲取此依賴項。

+0

這就是我正在做的。我正在創建一個基於Ninject的自定義DependencyResolver,所以我註冊了Ninject的所有接口,但在自定義的DependencyResolver中,我需要使用Ninject實例化接口,這就是我所需要的。 – Bill

+0

猜猜我錯過了這裏的東西,Ninject註冊自己作爲一個自定義的DependencyResolver?我看到一個基於MSFT Unity的自定義DependencyResolver示例,其中代碼需要解析自定義DR中的實例。 – Bill

+0

嗨Darin,我遇到了實現WebActivator的Start方法的情況,但是我需要某個接口的實例,但是實現WebActivator的類是Static並且無法訪問該接口的實例,那麼最好的方法是什麼這樣做?謝謝 – Bill