如何在使用Unity IoC时实现Ninject .InSingletonScope()

2 c# asp.net-mvc ninject unity-container

我在我的应用程序中使用了ninject IoC,特别是以下内容:

kernel.Bind<RepositoryFactories>().To<RepositoryFactories>()
   .InSingletonScope();
Run Code Online (Sandbox Code Playgroud)

我想使用Unity IoC实现这一点,但是有人可以告诉我如何使它成为同样的,它的含义是什么"InSingletonScope()"?以下工作,但我担心它没有正确完成,因为可能需要指定Singleton.

container.RegisterType<RepositoryFactories, RepositoryFactories>();
Run Code Online (Sandbox Code Playgroud)

Sim*_*ead 5

Unity使用的是LifeTimeManager's ..它的概念本质上是一个LifeTimeManager叫做Singleton的ContainerControlledLifetimeManager.您可以使用如下:

container.RegisterType<RepositoryFactories>(new ContainerControlledLifetimeManager(), /* other params */);
Run Code Online (Sandbox Code Playgroud)

我不确定你是否在问你的问题是什么?

还有什么意思"InSingletonScope()"?

在诸如Ninject和Unity之类的IoC容器的上下文中,Singleton是每次请求时都相同的对象.在您的示例中,每次您要求容器解析RepositoryFactories对象时...它将始终是同一个对象; 不是新的实例.