对于所有类型,如何告诉ninject 3默认使用单例范围?

时间:2012-05-26 18:19:37

标签: .net dependency-injection inversion-of-control ninject

我希望我的应用程序始终将服务用作单例,如何设置Ninject默认使用单例作用域。我使用约定来注册我的类型,我是否需要使用Bind<>方法

1 个答案:

答案 0 :(得分:8)

HY, 假设您的所有服务都从IService继承,您可以编写以下内容

添加以下使用声明

using Ninject.Extensions.Conventions;

使用

之类的约定
kernel.Bind( x => x
.FromThisAssembly()
.SelectAllClasses().InheritedFrom<IService>()
.BindAllInterfaces()
.Configure(b => b.InSingletonScope()));

您可能需要稍微调整一下以满足您的需求。