基于Ninject约定的配置
本文关键字:配置 约定 Ninject 基于 | 更新日期: 2023-09-27 18:20:16
是否可以配置Ninject,使其根据类命名约定自动将接口类型绑定到具体类型?我使用的是Ninject版本3。
例如,我在我的域层中有很多名为ITypeRepository的存储库,它们在我的基础结构层中实现为ProviderTypeRepository。
下面是一个我目前如何绑定的例子。这是Ninject的CreateKernal方法。
kernel.Bind<IClientRepository>().To<ProviderClientRepository>();
kernel.Bind<IVacancyRepository>().To<ProviderVacancyRepository>();
kernel.Bind<ICandidateRepository>().To<ProviderCandidateRepository>();
...etc etc
我想要的是以某种方式将其映射到一个过程中,这样每当我添加新的存储库时,我就不需要手动绑定它。
您正在寻找Ninject Conventions Extension,它可以执行以下操作:
kernel.Bind(x => x
.FromThisAssembly()
.SelectAllClasses().EndingWith("MySuffix")
.BindAllInterfaces();