J'ai un Type
dynamique généré lors de l'exécution, par exemple myGeneratedType
. J'essaye de créer une instance de la classe suivante, où T
devrait être myGeneratedType
. Je suis venu dans plusieurs réponses où un type dynamique a dû être mis à une propriété d'une classe, mais ne peut pas sembler le faire fonctionner sur un List<T>
:Paramètre de type générique pour définir une liste de types dynamiques à l'exécution
Type myGeneratedType;
private class Container<T>
{
public string a { get; set; }
public string b { get; set; }
public List<T> c { get; set; }
}
void Main()
{
Container<myGeneratedType> c = new Container<myGeneratedType>();
}
De toute évidence, la ligne de code dans ma méthode Main()
ne marche pas. Que dois-je faire pour créer une classe de Container
avec mon type dynamique en tant que paramètre de type générique?
Quelles autres réponses avez-vous rencontré et pourquoi ne travaillent-ils pas? – DavidG
Utilisez MakeGenericType: https://msdn.microsoft.com/fr-fr/library/system.type.makegenerictype(v=vs.110).aspx –
Pouvez-vous ajouter un contexte comme ce que vous allez faire avec 'c '? Si vous ne connaissez pas ce type au moment de la compilation, vous pouvez construire le 'Type' comme @YairHalberstadt suggère, mais cela n'aidera pas à déclarer' c' et à l'utiliser. Qu'essayez-vous exactement d'accomplir? –