2016-08-02 73 views
-2

的主要目的是什麼?請你能幫助我理解我必須在DI c#中使用對象範圍的位置。 這是什麼目的?對象範圍DI C#

kernel.Bind<Shogun>().ToSelf().InSingletonScope(); 
+0

您使用哪些庫?什麼是內核? 哪裏使用的代碼? 給我們一些信息的人! – MichaelThePotato

+2

麻煩你自己谷歌嗎? https://github.com/ninject/ninject/wiki/Object-Scopes – 3615

+0

我讀這篇文章,但我仍然不明白爲什麼定義一個SingletonScope時,我不能使用接口? –

回答

2

範圍aka生命週期範圍是每個應用程序的一個非常重要的部分,但尤其是涉及到依賴注入時。

通過依賴注入,您不僅可以控制創建哪個實現,還可以實現此實例被破壞的控制。

設置壽命指示的DI容器時破壞的情況下,如果該類型的新請求到來時創建一個新的

有幾種不同的生命週期:

  • 辛格爾頓:沒錯在應用程序的生命週期中創建某個組件的一個實例。
  • 瞬態:每次需要實例時創建一個新實例
  • PerRequest:創建並重用每個請求的一個實例。請求可能是很多事情。對於ASP.net mvc,請求通常是HTTP請求。對於Windows窗體應用程序,請求將由應用程序確定,通常在某個「使用」塊內。

Ninject細節可以在這裏找到: https://github.com/ninject/ninject/wiki/Object-Scopes