Ninject 激活IRepository{MyModel}时出错
情况: 接口:Ninject 激活IRepository{MyModel}时出错,ninject,Ninject,情况: 接口: IRepository<T> IMyModelRepository : IRepository<MyModel> IRepository IMyModelRepository:IRepository 课程: Repository<T> : IRepository<T> MyModelRepository : Repository<MyModel>, IMyModelRepository 存储库:IRepositor
IRepository<T>
IMyModelRepository : IRepository<MyModel>
IRepository
IMyModelRepository:IRepository
课程:
Repository<T> : IRepository<T>
MyModelRepository : Repository<MyModel>, IMyModelRepository
存储库:IRepository
MyModelRepository:Repository,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()));
kernel.Bind(typeof(Namespace.IRepository)).To(typeof(Namespace.Repository)).InRequestScope();
Bind(typeof(Namespace.IRepositoryInternal)).To(typeof(Namespace.Repository)).InRequestScope();
Bind(typeof(Namespace.IMyModelRepository)).To(typeof(Namespace.MyModelRepository)).InRequestScope();
Bind(scanner=>scanner
.FromAssemblyContaining(typeof(Namespace.SomeService))
.SelectAllClasses()
.不包括()
.BindDefaultInterfaces()
.Configure(binding=>binding.InRequestScope());
注射:
readonly IRepository<MyModel> _MyModelRepository; //this is the property, injection is constructor injection
只读IRepository\u MyModelRepository//这是属性,注入是构造函数注入
问题:
激活IRepository{WarningModel}时出错
有多个匹配绑定可用。
激活路径:
5) 将依赖项IRepository{MyModel}注入到AnotherService类型构造函数的参数MyModelRepository中
我错过了什么?多重绑定在哪里
如果这些信息还不够,我可以提供额外的信息。问题是
.BindDefaultInterfaces()
。它应该是.BindDefaultInterface()