我在我的MVC项目中使用Ninject 1.5。它运行良好,但由于我们有Ninject 2,我可以升级(并且另外使用每个请求行为,这在1.5中无法正常工作)。 Ninject 1.5具有InjectPropertiesWhere
功能,在Ninject 2中缺失(至少在我前一段时间测试时)。有类似的东西吗?
InjectPropertiesWhere
的示例:
return Bind<IUserService>().To<UserService>()
.InjectPropertiesWhere(p => p.Name.EndsWith("Repository"))
.InjectPropertiesWhere(p => p.Name.EndsWith("Service"))
.InjectPropertiesWhere(p => p.Name == "ApplicationCache")
.InjectPropertiesWhere(p => p.Name == "CurrentPrincipal")
.InjectPropertiesWhere(p => p.Name == "CTEmailSender")
.InjectPropertiesWhere(p => p.Name == "CTSettings");
答案 0 :(得分:6)
Ninject 2不支持这种方式。您有4个选项:
WithProperty("propertyName", ctx => ctx.Kernel.Get<MyType>())