我现在正在围绕着试图让许多IEnumerables使用依赖注入的模式。依赖注入和泛型集合
我有三种类型的对象,我想从我的数据库返回:项目,批次和任务。我想创建一个具有以下形式的存储库:
public interface IRepository<T>
{
IEnumerable<T> GetAll();
IEnumerable<T> GetAllActive();
IEnumerable<T> GetItemsByUserName(string UserName);
T GetItemById(int ID);
}
所以,当我创建一个具体的实施ProjectRepository的,它看起来就像这样:
IEnumerable<Project> GetAll();
IEnumerable<Project> GetAllActive();
IEnumerable<Project> GetItemsByUserName(string UserName);
Project GetItemById(int ID);
也是类似的任务:
IEnumerable<Task> GetAll();
IEnumerable<Task> GetAllActive();
IEnumerable<Task> GetItemsByUserName(string UserName);
Task GetItemById(int ID);
我的困难是试图在我的调用代码中声明一个IRepository。当我宣布参考时,我发现自己需要声明一个类型:
private IRepository<Project> Repository;
......这当然是毫无意义的。我在某个地方出了问题,但目前无法摆脱困境。我如何使用依赖注入,以便我可以声明一个使用所有三种具体类型的接口?
希望我已经正确地解释了我自己。