2010-07-10 261 views
3

我是新來ninject使用ninject 2.0。我的應用程序託管在asp.net mvc中。Ninject如何訪問內核來創建實例?

現在我不知道如何訪問我的類庫中創建的內核。

我想我應該在global.aspx中創建內核並加載其中的所有模塊。但是我怎樣才能在整個應用程序中使用它?

protected void Application_Start() 
    { 
     RegisterRoutes(RouteTable.Routes); 

     IKernel kernel = new StandardKernel(new ServiceModule()); 
    } 

上面創建的kernel應該去哪裏?以及如何訪問它?

回答

2

請看Ninject.Web.Mvc的on the Ninject Dojo's extensions section。這會顯示管理這些事情的默認模式(查看源代碼)。

您可以按原樣使用它(大多數人會這樣做),也可以根據自己的喜好進行自定義。

你也用CSL標記了這個。在使用Ninject for Service Location之前,請搜索爲什麼這被認爲是反模式(默認情況下,引用的擴展名不會使Kernel公開於Global - 您必須自己添加public配置文件(但WCF積分另一方面)

+2

@mamu:任何人在家?這有任何使用?任何後續,將回答... – 2010-07-13 07:34:44

+1

我正在通過注入與mvc擴展的內核工作,現在我需要它的地方。但看起來像hack注入內核,因爲它對ninject的依賴很大 同時訪問HttpApplication的全局屬性並不那麼令人信服 你對CSL僅用於內核有什麼看法,不想要自動注入,我可以從CSL獲取內核並執行IOC? – mamu 2010-07-16 15:14:24

+0

另外我只是談論片段,我不想做構造函數注入。大部分的實現都是圍繞着自動構造函數注入的,這很好。 – mamu 2010-07-16 15:15:49

相關問題