情况:
接口:
IRepository<T>
IMyModelRepository : IRepository<MyModel>
类:
Repository<T> : IRepository<T>
MyModelRepository : Repository<MyModel>, IMyModelRepository
绑定:
kernel.Bind(typeof(Namespace.IRepository<>)).To(typeof(Namespace.Repository<>)).InRequestScope();
kernel.Bind(typeof(Namespace.IRepositoryInternal<>)).To(typeof(Namespace.Repository<>)).InRequestScope();
kernel.Bind(typeof(Namespace.IMyModelRepository)).To(typeof(NameSpace.MyModelRepository)).InRequestScope();
kernel.Bind(scanner => scanner
.FromAssemblyContaining(typeof(Namespace.SomeService))
.SelectAllClasses()
.Excluding<Namespace.MyModelRepository>()
.BindDefaultInterfaces()
.Configure(binding => binding.InRequestScope()));
注射:
readonly IRepository<MyModel> _MyModelRepository; //this is the property, injection is constructor injection
问题:
激活IRepository {WarningModel}时出错 可以使用多个匹配的绑定。 激活路径: 5)将依赖关系IRepository {MyModel}注入到AnotherService类型的构造函数的参数MyModelRepository中
我缺少什么?多重绑定在哪里?
如果此信息不足,我可以提供额外信息。
答案 0 :(得分:0)
问题是.BindDefaultInterfaces()
。应该是.BindDefaultInterface()
。