使用Ninject在具有相同基类型的多个存储库的类中分配正确的存储库

时间:2011-08-03 22:06:56

标签: c# ioc-container ninject

实施例

作为我正在谈论的一个例子,假设我有2个存储库:

SubordinateRepository : IRepository<User> 
{
    // ...
}

从属存储库用于获取用户的下属。


DelegateRepository : IRepository<User> 
{
    // ...
}

委托存储库用于获取给定用户已指定为委托的任何其他用户。


在我的用户班中,我有:

public class User
{
    public User(IRepository<User> subordinateRepo, IRepository<User> delegateRepo)
    {
        _subordianteRepository = subordinateRepo;
        _delegateRespository = delegateRepo;
    }

    private IRepository<User> _subordianteRepository;
    private IRepository<User> _delegateRespository;
}

问题

如何使用Ninject设置绑定,以便将每个抽象IRepository<User>分配给适当的具体存储库?

1 个答案:

答案 0 :(得分:3)

查看Contextual Binding section in the wiki

上的各种选项示例