是否可以配置Ninject,以便根据类命名约定自动将某种类型的接口绑定到具体类型?我正在使用Ninject版本3。
例如,我的域层中有很多名为ITypeRepository的存储库,它们在我的基础架构层中实现为ProviderTypeRepository。
下面是我目前如何绑定这些是Ninject的CreateKernal方法的示例。
kernel.Bind<IClientRepository>().To<ProviderClientRepository>();
kernel.Bind<IVacancyRepository>().To<ProviderVacancyRepository>();
kernel.Bind<ICandidateRepository>().To<ProviderCandidateRepository>();
...etc etc
我想要的是以一种方式将它映射到一次,这样每当我添加一个新的存储库时,我都不需要手动绑定它。
答案 0 :(得分:1)
您正在寻找可以执行以下操作的Ninject Conventions Extension:
kernel.Bind(x => x
.FromThisAssembly()
.SelectAllClasses().EndingWith("MySuffix")
.BindAllInterfaces();