[英]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.