2013-06-28 87 views
1

是否可以配置Ninject,以便它根據類命名約定自動將一種類型的接口綁定到具體類型?我正在使用Ninject版本3.基於Ninject約定的配置

例如,我在我的域圖層中有很多存儲庫,名稱爲ITypeRepository,它們在我的基礎架構層中作爲ProviderTypeRepository實現。

下面是我如何綁定這些是Ninject的CreateKernal方法的示例。

kernel.Bind<IClientRepository>().To<ProviderClientRepository>(); 
kernel.Bind<IVacancyRepository>().To<ProviderVacancyRepository>(); 
kernel.Bind<ICandidateRepository>().To<ProviderCandidateRepository>(); 
...etc etc 

我想是在一個通以某種方式映射此所以,每當我添加一個新的存儲庫,我不需要手動綁定。

回答

1

您正在尋找的Ninject Conventions Extension它可以這樣做:

kernel.Bind(x => x 
    .FromThisAssembly() 
    .SelectAllClasses().EndingWith("MySuffix") 
    .BindAllInterfaces();