我已經開始與Ninject合作開發一個網站並在項目中設置DI。Ninject和惰性依賴注入mvc 4.5
我注意到你在app_start中註冊了綁定依賴關係,名爲ninjectWebCommon。項目加載時,是否所有的依賴關係都被註冊?例如,如果您有超過50個依賴關係註冊,這是否會導致資源問題?還是每個實例都在頁面執行上註冊?如果沒有,是否有一種方法可以惰性地綁定依賴關係,或者這是不必要的?
即使使用其他IOC容器,是否有更好的方法來完成此操作?
我已經開始與Ninject合作開發一個網站並在項目中設置DI。Ninject和惰性依賴注入mvc 4.5
我注意到你在app_start中註冊了綁定依賴關係,名爲ninjectWebCommon。項目加載時,是否所有的依賴關係都被註冊?例如,如果您有超過50個依賴關係註冊,這是否會導致資源問題?還是每個實例都在頁面執行上註冊?如果沒有,是否有一種方法可以惰性地綁定依賴關係,或者這是不必要的?
即使使用其他IOC容器,是否有更好的方法來完成此操作?
您應該閱讀約Register Resolve Release pattern。基本上註冊過程很簡單,你告訴容器哪些類型用於解析抽象。在此過程中不會創建任何對象。 DI容器在請求到達您的應用程序時創建實例。根據生命週期的不同,它們可能只創建一次或每次請求。
您也可以像其他容器一樣進行註冊,它確實是一個資源問題。然而Ninject有點慢。如果您可以隨意選擇,那麼使用SimpleInjector等DI容器可能會更好。
Ta!我會快速瀏覽一下。 –
你的意思是初始化而不是註冊?如果他們剛剛註冊,則不應該有太多的開銷。 – Joey
我的意思是註冊。這是項目第一次啓動的時間。例如私有靜態無效註冊服務(IKernel內核) { kernel.Bind()。到(); } –
在這種情況下,Ufuk的答案涵蓋了你想知道的內容。 – Joey