我在类lib中有一组存储库,需要是单例。 他们与其他类共享库 - 创建为单例的类。
是否可以将Ninject配置为自动对所有符合特定条件的类使用InSingletonScope() - 例如,在特定命名空间中定义?
我有20到30个存储库,根据我的发现,我需要为每个存储库调用InSingletonScope()。
我当然可以 - 通过反思来做到这一点,但我很想知道是否有一种“自动方法”:)
答案 0 :(得分:3)
来自Ninject.Extensions.Conventions wiki:
kernel.Bind(x => x
.FromThisAssembly()
.SelectAllClasses().InNamespaceOf<MyService>()
.BindAllInterfaces()
.Configure(b => b.InSingletonScope()));
答案 1 :(得分:1)