我現在正在圍繞着試圖讓許多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;
......這當然是毫無意義的。我在某個地方出了問題,但目前無法擺脫困境。我如何使用依賴注入,以便我可以聲明一個使用所有三種具體類型的接口?
希望我已經正確地解釋了我自己。