Je dois créer à des instances d'exécution d'une classe qui utilise des génériques, comme class<T>
, sans savoir au préalable le type T ils auront, je voudrais faire quelque chose comme ça:Est-il impossible d'utiliser Generics dynamiquement?
public Dictionary<Type, object> GenerateLists(List<Type> types)
{
Dictionary<Type, object> lists = new Dictionary<Type, object>();
foreach (Type type in types)
{
lists.Add(type, new List<type>()); /* this new List<type>() doesn't work */
}
return lists;
}
... mais je ne peut pas. Je pense qu'il n'est pas possible d'écrire en C# dans les parenthèses génériques une variable de type. Y a-t-il un autre moyen de le faire?
Pouvez-vous donner une raison pour laquelle vous souhaitez créer un objet générique de type sécurité lors de l'exécution? –
Je l'ai fait plusieurs fois, en particulier lors du portage des tampons de protocole. –
Je fais un adaptateur pour un cadre de persistance ici dans mon travail, et les classes ont besoin de cette information pour effectuer leur travail. –