ICorDebugClass2::GetParameterizedType (Método)
Obtiene la declaración de tipo para esta clase.
HRESULT GetParameterizedType (
[in] CorElementType elementType,
[in] ULONG32 nTypeArgs,
[in, size_is(nTypeArgs)] ICorDebugType *ppTypeArgs[],
[out] ICorDebugType **ppType
);
Parámetros
elementType
(Opción) Valor de la enumeración CorElementType que especifica el tipo de elemento para esta clase: establezca este valor en ELEMENT_TYPE_VALUETYPE si ICorDebugClass2 representa un tipo de valor. Establezca este valor en ELEMENT_TYPE_CLASS si ICorDebugClass2 representa un tipo complejo.nTypeArgs
[in] Número de parámetros de tipo, si el tipo es genérico. El número de parámetros de tipo (si los hay) debe coincidir con el número requerido por la clase.ppTypeArgs
[in] Matriz de punteros, cada uno de los cuales señala a un objeto ICorDebugType que representa un parámetro de tipo. Si la clase es no genérica, este valor es nulo.ppType
[out] Puntero a la dirección de un objeto ICorDebugType que representa el tipo de declaración. Este objeto equivale a un objeto Type en código administrado.
Comentarios
Si la clase no es genérica, es decir, si no tiene ningún parámetro de tipo, GetParameterizedType simplemente obtiene el objeto de tipo de tiempo de ejecución que corresponde a la clase. El parámetro elementType debería establecerse en el tipo de elemento correcto para la clase: ELEMENT_TYPE_VALUETYPE si la clase es un tipo de valor; si no, ELEMENT_TYPE_CLASS.
Si la clase acepta parámetros de tipo (por ejemplo, ArrayList<T>), puede utilizar GetParameterizedType para construir un objeto de tipo para un tipo con instancias, como ArrayList<int>.
Información general
En las versiones 1.0 y 1.1 de .NET Framework, cada tipo de los metadatos podría asignarse directamente a un tipo en el proceso en ejecución. Así, un tipo de los metadatos y un tipo en tiempo de ejecución tendrían una representación única en el proceso en ejecución. Sin embargo, un tipo genérico en metadatos se puede asignar a muchas instancias diferentes del tipo en el proceso en ejecución. Por ejemplo, el tipo de metadatos SortedList<K,V> puede asignarse a SortedList<String, EmployeeRecord>, SortedList<Int32, String>, SortedList<String,Int32>>, etc. En consecuencia, necesita una manera de administrar la creación de instancias del tipo.
La versión 2 de .NET Framework presenta la interfaz ICorDebugType. Para un tipo genérico, un objeto ICorDebugClass o ICorDebugClass2 representa el tipo sin instancias (SortedList<K,V>) y un objeto ICorDebugType representa los diversos tipos con instancias. Dado un objeto ICorDebugClass o ICorDebugClass2, puede crear un objeto ICorDebugType para cualquier creación de instancia llamando al método ICorDebugClass2::GetParameterizedType. También puede crear un objeto ICorDebugType para un tipo simple tal como Int32 o para un tipo no genérico.
La introducción del objeto ICorDebugType para representar la noción de tiempo de ejecución de un tipo tiene un efecto que se propaga a través de la API. Las funciones que previamente admitían un objeto ICorDebugClass o ICorDebugClass2, o incluso un valor CorElementType, se generalizan para admitir un objeto ICorDebugType.
Requisitos
Plataformas: vea Requisitos de sistema de .NET Framework.
Encabezado: CorDebug.idl, CorDebug.h
Biblioteca: CorGuids.lib
Versiones de .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0