簡體   English   中英

使用Unity IoC時如何實現Ninject .InSingletonScope()

[英]How can I implement Ninject .InSingletonScope() when using Unity IoC

我在應用程序中使用了ninject IoC,尤其是以下內容:

kernel.Bind<RepositoryFactories>().To<RepositoryFactories>()
   .InSingletonScope();

我想使用Unity IoC來實現這一點,但是有人可以告訴我如何使其相同,這又意味着“ InSingletonScope()”是什么意思嗎? 以下工作有效,但我擔心由於可能需要指定Singleton而無法正確完成。

container.RegisterType<RepositoryFactories, RepositoryFactories>();

Unity使用LifeTimeManager的概念。它附帶一個稱為ContainerControlledLifetimeManager本質上為Singleton LifeTimeManager東西。 您可以按以下方式使用它:

container.RegisterType<RepositoryFactories>(new ContainerControlledLifetimeManager(), /* other params */);

我不確定您要問的是什么是Singleton:

還有什么意思“ InSingletonScope()”?

在IoC容器(例如Ninject和Unity)的上下文中,單例對象是每次請求時都相同的對象。 在您的示例中,每次您要求容器解析RepositoryFactories對象時,它始終是同一對象; 不是新實例。

根據此,您應該使用ContainerControlledLifetimeManager 您的注冊將是:

container.RegisterType<RepositoryFactories>(new ContainerControlledLifetimeManager())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM