Compartir a través de


Genéricos y reflexión (Guía de programación de C#)

Actualización: noviembre 2007

Debido a que el Common Language Runtime (CLR) tiene acceso a información de tipo genérico en tiempo de ejecución, es posible usar la reflexión para obtener información sobre tipos genéricos de la misma forma que para tipos no genéricos. Para obtener más información, vea Genéricos en el motor en tiempo de ejecución (Guía de programación de C#).

En .NET Framework 2.0, se agregan varios miembros nuevos a la clase Type para habilitar la información en tiempo de ejecución para los tipos genéricos. Consulte la documentación existente sobre estas clases para obtener más información sobre cómo utilizar estos métodos y propiedades. El espacio de nombres System.Reflection.Emit también contiene algunos miembros nuevos que admiten genéricos. Vea Cómo: Definir un tipo genérico con Reflection Emit.

Para obtener una lista de las condiciones invariables utilizadas en la reflexión genérica, vea los comentarios de la propiedad IsGenericType.

Nombre de miembro System.Type

Descripción

IsGenericType

Devuelve true si un tipo es genérico.

GetGenericArguments

Devuelve una matriz de objetos Type que representan los argumentos de tipo suministrados 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 los tipos o métodos que incluye contiene parámetros de tipo para los que no se han proporcionado tipos específicos.

GenericParameterAttributes

Obtiene una combinación de marcadores GenericParameterAttributes que describen las restricciones especiales del parámetro de tipo genérico actual.

GenericParameterPosition

En un objeto Type que representa un parámetro de tipo, obtiene la posición de éste en la lista de parámetros de tipo de la definición de tipo genérico o la definición 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 un tipo genérico o de una definición de método.

IsGenericTypeDefinition

Obtiene un valor que indica si el 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 un método genérico no define el parámetro de tipo.

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, se agregan miembros nuevos a la clase MethodInfo para habilitar la información en tiempo de ejecución para los métodos genéricos. Vea los comentarios de la propiedad IsGenericMethod para obtener una lista de condiciones invariables que se utilizan para reflejarlas en métodos genéricos.

Nombre de miembro System.Reflection.MemberInfo

Descripción

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 los tipos que incluye contiene cualquier parámetro de tipo para el que no se han proporcionado tipos específicos.

IsGenericMethodDefinition

Devuelve true si el objeto 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.

Vea también

Conceptos

Guía de programación de C#

Información general sobre la reflexión y los genéricos

Referencia

Genéricos (Guía de programación de C#)

Otros recursos

Genéricos en .NET Framework