2016-08-02 53 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