2014-02-24 92 views
0

現狀:錯誤激活IRepository {}爲MyModel

接口:

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

問題是.BindDefaultInterfaces()。它應該是.BindDefaultInterface()