Genéricos y reflexión

Dado que Common Language Runtime (CLR) tiene acceso a la información de tipos genéricos en tiempo de ejecución, se puede usar la reflexión para obtener información sobre los tipos genéricos de la misma manera que para los tipos no genéricos. Para obtener más información, vea Genéricos en tiempo de ejecución.

El espacio de nombres System.Reflection.Emit también contiene los miembros nuevos que admiten genéricos. Vea Cómo: Definir un tipo genérico con emisión de reflexión.

Para obtener una lista de las condiciones invariables para los términos usados en la reflexión genérica, vea los comentarios de la propiedad IsGenericType:

  • IsGenericType: devuelve true si un tipo es genérico.
  • GetGenericArguments: devuelve una matriz de objetos Type que representan los argumentos de tipo proporcionados para un tipo construido, o los parámetros de tipo de una definición de tipo genérico.
  • GetGenericTypeDefinition: devuelve la definición de tipo genérico subyacente para el tipo construido actual.
  • GetGenericParameterConstraints: devuelve una matriz de objetos Type que representan las restricciones en el parámetro de tipo genérico actual.
  • ContainsGenericParameters: devuelve true si el tipo o cualquiera de sus tipos o métodos envolventes contiene los parámetros de tipo para los que no se proporcionaron tipos específicos.
  • GenericParameterAttributes: obtiene una combinación de marcas GenericParameterAttributes que describen las restricciones especiales del parámetro de tipo genérico actual.
  • GenericParameterPosition: para un objeto Type que representa un parámetro de tipo, obtiene la posición del parámetro de tipo en la lista de parámetros de tipo de la definición de tipo genérico o de método genérico que declaró el parámetro de tipo.
  • IsGenericParameter: obtiene un valor que indica si el objeto Type actual representa un parámetro de tipo de una definición de un tipo o método genérico.
  • IsGenericTypeDefinition: obtiene un valor que indica si el objeto Type actual representa una definición de tipo genérico, a partir de la cual se pueden construir otros tipos genéricos. Devuelve true si el tipo representa la definición de un tipo genérico.
  • DeclaringMethod: devuelve el método genérico que definió el parámetro de tipo genérico actual o NULL si el parámetro de tipo no se definió mediante un método genérico.
  • MakeGenericType: sustituye los elementos de una matriz de tipos por los parámetros de tipo de la definición de tipo genérico actual y devuelve un objeto Type que representa el tipo construido resultante.

Además, los miembros de la clase MethodInfo habilitan la información en tiempo de ejecución para métodos genéricos. Para obtener una lista de las condiciones invariables para los términos usados para reflejarse en métodos genéricos, vea los comentarios de la propiedad IsGenericMethod:

  • IsGenericMethod: devuelve true si un método es genérico.
  • GetGenericArguments: devuelve una matriz de objetos Type que representan los argumentos de tipo de un método genérico construido o los parámetros de tipo de una definición de método genérico.
  • GetGenericMethodDefinition: devuelve la definición de método genérico subyacente para el método construido actual.
  • ContainsGenericParameters: devuelve true si el método o cualquiera de sus tipos envolventes contiene los parámetros de tipo para los que no se proporcionaron tipos específicos.
  • IsGenericMethodDefinition: devuelve True si el tipo MethodInfo actual representa la definición de un método genérico.
  • MakeGenericMethod: sustituye los elementos de una matriz de tipos por los parámetros de tipo de la definición de método genérico actual y devuelve un objeto MethodInfo que representa el método construido resultante.

Consulte también