所以我在依赖注入方面遇到了一些问题..我收到以下错误:
激活IDocumentReadRepository时出错没有匹配的绑定 可用,并且类型不可自我绑定。激活路径:3) 将依赖项IDocumentReadRepository注入参数 readOrchestrator类型的构造函数的readRepository 2)注入 依赖IReadOrchestrator到参数
所以我将readOrchestrator注入到我的MVC3应用程序中,这很好......但是在我的readOrchestrator中调用我的IDocumentReadRepository中的方法时会出现问题。
我的ReadOrchestrator看起来像:
public class ReadOrchestrator : IReadOrchestrator
{
private readonly IDocumentReadRepository _readRepository;
public ReadOrchestrator(IDocumentReadRepository readRepository)
{
_readRepository = readRepository;
}
public UserFeed GetUserFeed(string userName, int pageNumber, int pageSize)
{
var feed = _readRepository.Query<UserFeed>(x => x.UserName == (string)userName
.Page(pageNumber, pageSize));
return feed;
}
}
public class DocumentReadRepository : IDocumentReadRepository
{
readonly IDocumentStore _documentStore;
public DocumentReadRepository(IDocumentStore documentStore)
{
_documentStore = documentStore;
}
...
}
我应该在这种情况下使用DI吗?如果是这样,我应该如何/在哪里为IDocumentReadRepository做绑定?或者我应该在每次调用ReadOrchestrator时创建它的新实例?
感谢
答案 0 :(得分:1)
是的,您确定需要将IDocumentReadRepository
注册或绑定到具体实现,即DocumentReadRepository
。
你的代码库中有一个BindModule。
当DocumentReadRepository
的实例想要创建时,ReadOrchestrator
和ninject的绑定是否会为您连接依赖项。
喜欢这个
this.Bind<IDocumentReadRepository>.To<DocumentReadRepository>();