从注入的程序集调用程序集时出现DI错误

时间:2012-01-06 11:19:08

标签: .net asp.net-mvc-3 c#-4.0 ninject

所以我在依赖注入方面遇到了一些问题..我收到以下错误:

  

激活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时创建它的新实例?

感谢

1 个答案:

答案 0 :(得分:1)

是的,您确定需要将IDocumentReadRepository注册或绑定到具体实现,即DocumentReadRepository

你的代码库中有一个BindModule。

DocumentReadRepository的实例想要创建时,ReadOrchestrator和ninject的绑定是否会为您连接依赖项。

喜欢这个

this.Bind<IDocumentReadRepository>.To<DocumentReadRepository>();