C# 对定义的命名空间中的所有类使用Ninject.InSingletonScope()

C# 对定义的命名空间中的所有类使用Ninject.InSingletonScope(),c#,singleton,ninject,ioc-container,C#,Singleton,Ninject,Ioc Container,我在类库中有一组存储库,它们必须是单例的。 它们与其他类以及创建为单例的类共享库 是否可以将Ninject配置为对所有匹配特定条件的类(例如,在特定命名空间中定义的类)自动使用InSingletonScope() 我有20到30个存储库,根据我的发现,我需要为每个存储库调用InSingletonScope() 当然,我可以通过反思来做到这一点,但我想知道是否有一种“自动方法”可以做到这一点:)这是由处理的。这是由处理的。来自: kernel.Bind(x=>x .FromThisAssembly

我在类库中有一组存储库,它们必须是单例的。 它们与其他类以及创建为单例的类共享库

是否可以将Ninject配置为对所有匹配特定条件的类(例如,在特定命名空间中定义的类)自动使用InSingletonScope()

我有20到30个存储库,根据我的发现,我需要为每个存储库调用InSingletonScope()

当然,我可以通过反思来做到这一点,但我想知道是否有一种“自动方法”可以做到这一点:)

这是由处理的。

这是由处理的。

来自:

kernel.Bind(x=>x
.FromThisAssembly()中的
.SelectAllClasses().InNamespaceOf()中的
.BindAllInterfaces()
.Configure(b=>b.InSingletonScope());
来自:

kernel.Bind(x=>x
.FromThisAssembly()中的
.SelectAllClasses().InNamespaceOf()中的
.BindAllInterfaces()
.Configure(b=>b.InSingletonScope());
kernel.Bind(x => x
    .FromThisAssembly()
    .SelectAllClasses().InNamespaceOf<MyService>()
    .BindAllInterfaces()
    .Configure(b => b.InSingletonScope()));