В приведенном ниже примере у меня есть метод GetList, который принимает один строковый параметр и возвращает объекты List. Я фиксирую это в общей переменной IEnumerable, потому что во время выполнения я понятия не имею, какой объект пользователь может захотеть. Как я могу использовать фактический тип вместо объекта?IEnumerable переменной типа
Я хочу, чтобы заменить это ...
IEnumerable<object> data = GetList(entityName);
С этим ...
IEnumerable<Company> data = GetList(entityName);
Единственный способ, которым я могу думать о обращении с ним прямо сейчас, который я не собираюсь делать потому что мы имеем 300+ сущности нечто вроде
switch(entitName)
{
case "Company":
IEnumerable<Company> data = GetList(entityName);
break;
case "Employee":
IEnumerable<Employee> data = GetList(entityName);
break;
...
}
'GetList (entityName) .Cast()' –
Я не знаю, что это будет компания. Это может быть Employee или Role и т. Д. Единственная информация, которая у меня есть, - это строка (entityName), представляющая объект, который они хотят запросить. – jjf1978
Ну, в этом случае вы должны сохранить свой объект. Компилятор не может знать и вас. Вам нужно будет сделать несколько тиков, чтобы узнать, какой тип вы используете. Или вам нужно предоставить нам контекст, в котором выполняется ваш код, чтобы мы могли найти работу. –