Я создаю репозиторий следующим образом:Как сделать метод возвратом универсального метода?
public class StagingRepository
{
private IRepository<CurrentTransformer> CurrentTransformerRepository { get; set; }
private IRepository<Equipment> EquipmentRepository { get; set; }
private IRepository<Line> LineRepository { get; set; }
public StagingRepository()
{
this.CurrentTransformerRepository = new Repository<CurrentTransformer>();
this.EquipmentRepository = new Repository<Equipment>();
this.LineRepository = new Repository<Line>();
}
}
Все это работает ... Но то, что я пытаюсь добавить это метод в классе, который возвращает один из Хранилища выше на основе значения строки.
public IRepository<Object> SetRepo(string TableName)
{
switch (TableName)
{
case "Line":
return LineRepository;
break;
}
}
Я знаю, что вышеупомянутое не работает, но оно дает вам представление о том, чего я пытаюсь выполнить. Моя цель была бы я должен быть в состоянии установки что-то вроде этого в моем коде, чтобы позвонить в хранилище:
StagingRepository _repo = new StagingRepository();
var myList = _repo.SetRepo("Line").All(); //All is a function of IRepository
Любая помощь будет принята с благодарностью.
Думаю, я не уверен, что вы здесь говорите ... –
@kevinc Я добавил дополнительные пояснения. Теперь нормально? – BartoszKP
Я попытался поместить в IRepository, но это не позволит из-за того, что у меня есть другие методы, которые требуют T –