Dans l'exemple ci-dessous, j'ai une méthode appelée GetList qui prend un paramètre de chaîne unique et retourne une liste d'entités. Je capture ceci dans une variable IEnumerable générique parce qu'à l'exécution je n'ai aucune idée quelle entité l'utilisateur peut vouloir. Comment puis-je utiliser le type réel au lieu de l'objet?IEnumerable du type de variable
Je veux remplacer ...
IEnumerable<object> data = GetList(entityName);
Avec cette ...
IEnumerable<Company> data = GetList(entityName);
La seule façon que je peux penser à manipuler en ce moment que je ne vais pas faire parce que nous avons plus de 300 entités est quelque chose comme
switch(entitName)
{
case "Company":
IEnumerable<Company> data = GetList(entityName);
break;
case "Employee":
IEnumerable<Employee> data = GetList(entityName);
break;
...
}
'GetList (entityName) .Cast()' –
Je ne sais pas ce sera la société si. Il peut s'agir d'un employé ou d'un rôle, etc. La seule information que j'ai est une chaîne (entityName) représentant l'entité qu'ils veulent interroger. – jjf1978
Eh bien, dans ce cas, vous devriez garder votre objet. Le compilateur ne peut pas savoir pour vous non plus. Vous devrez faire un certain type de frappe pour savoir quel type vous utilisez alors. Ou vous aurez besoin de nous donner le contexte où votre code est exécuté pour nous permettre de trouver un travail. –