Génériques et réflexion

Étant donné que le Common Language Runtime (CLR) a accès aux informations de type générique au moment de l’exécution, vous pouvez utiliser la réflexion pour obtenir des informations sur les types génériques de la même façon que pour les types non génériques. Pour plus d’informations, consultez Génériques dans le runtime.

L’espace de noms System.Reflection.Emit contient également de nouveaux membres qui prennent en charge les génériques. Découvrez comment : définir un type générique avec l’émission de réflexion.

Pour obtenir la liste des conditions invariantes pour les termes utilisés dans la réflexion générique, consultez les IsGenericType remarques de propriété :

  • IsGenericType: retourne true si un type est générique.
  • GetGenericArguments: retourne un tableau d’objets qui représentent les arguments de Type type fournis pour un type construit ou les paramètres de type d’une définition de type générique.
  • GetGenericTypeDefinition: retourne la définition de type générique sous-jacente pour le type construit actuel.
  • GetGenericParameterConstraints: retourne un tableau d’objets Type qui représentent les contraintes sur le paramètre de type générique actuel.
  • ContainsGenericParameters: Retourne vrai si le type ou l'un de ses types ou méthodes englobants contient des paramètres de type pour lesquels des types spécifiques n'ont pas été fournis.
  • GenericParameterAttributes: Obtient une combinaison d’indicateurs GenericParameterAttributes qui décrivent les contraintes spéciales du paramètre de type générique actuel.
  • GenericParameterPosition: pour un objet qui représente un Type paramètre de type, obtient la position du paramètre de type dans la liste des paramètres de type de la définition de type générique ou de la définition de méthode générique qui a déclaré le paramètre de type.
  • IsGenericParameter: Obtient une valeur qui indique si le courant Type représente un paramètre de type d’un type générique ou d’une définition de méthode.
  • IsGenericTypeDefinition: Obtient une valeur qui indique si le courant Type représente une définition de type générique, à partir de laquelle d’autres types génériques peuvent être construits. Retourne true si le type représente la définition d’un type générique.
  • DeclaringMethod: retourne la méthode générique qui a défini le paramètre de type générique actuel ou null si le paramètre de type n’a pas été défini par une méthode générique.
  • MakeGenericType: remplace les éléments d’un tableau de types pour les paramètres de type de la définition de type générique actuelle et retourne un Type objet représentant le type construit résultant.

En outre, les membres de la MethodInfo classe activent des informations d’exécution pour les méthodes génériques. Consultez les IsGenericMethod remarques de propriété pour obtenir la liste des conditions invariantes pour les termes utilisés pour refléter les méthodes génériques :

  • IsGenericMethod: retourne true si une méthode est générique.
  • GetGenericArguments: retourne un tableau d’objets Type qui représentent les arguments de type d’une méthode générique construite ou les paramètres de type d’une définition de méthode générique.
  • GetGenericMethodDefinition: retourne la définition de méthode générique sous-jacente pour la méthode construite actuelle.
  • ContainsGenericParameters: retourne vrai si la méthode ou l’un de ses types englobants contient des paramètres de type pour lesquels aucun type spécifique n’a été fourni.
  • IsGenericMethodDefinition : Retourne vrai si le MethodInfo représente la définition d’une méthode générique.
  • MakeGenericMethod: remplace les éléments d’un tableau de types pour les paramètres de type de la définition de méthode générique actuelle et retourne un MethodInfo objet représentant la méthode construite résultante.

Voir aussi