2014-01-08 134 views
2

我已經開始與Ninject合作開發一個網站並在項目中設置DI。Ninject和惰性依賴注入mvc 4.5

我注意到你在app_start中註冊了綁定依賴關係,名爲ninjectWebCommon。項目加載時,是否所有的依賴關係都被註冊?例如,如果您有超過50個依賴關係註冊,這是否會導致資源問題?還是每個實例都在頁面執行上註冊?如果沒有,是否有一種方法可以惰性地綁定依賴關係,或者這是不必要的?

即使使用其他IOC容器,是否有更好的方法來完成此操作?

+0

你的意思是初始化而不是註冊?如果他們剛剛註冊,則不應該有太多的開銷。 – Joey

+0

我的意思是註冊。這是項目第一次啓動的時間。例如私有靜態無效註冊服務(IKernel內核) { kernel.Bind ()。到(); } –

+0

在這種情況下,Ufuk的答案涵蓋了你想知道的內容。 – Joey

回答

3

您應該閱讀約Register Resolve Release pattern。基本上註冊過程很簡單,你告訴容器哪些類型用於解析抽象。在此過程中不會創建任何對象。 DI容器在請求到達您的應用程序時創建實例。根據生命週期的不同,它們可能只創建一次或每次請求。

1

您也可以像其他容器一樣進行註冊,它確實是一個資源問題。然而Ninject有點慢。如果您可以隨意選擇,那麼使用SimpleInjector等DI容器可能會更好。

爲了比較我用a website with some benchmarks

+0

Ta!我會快速瀏覽一下。 –