激活IRepository {MyModel}时出错

时间:2014-02-24 09:35:59

标签: ninject

情况:

接口:

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中

我缺少什么?多重绑定在哪里?

如果此信息不足,我可以提供额外信息。

1 个答案:

答案 0 :(得分:0)

问题是.BindDefaultInterfaces()。应该是.BindDefaultInterface()

相关问题