Compartir a través de


ICorProfilerInfo2::GetClassIDInfo2 (Método)

Este método puede usarse para obtener el módulo primario y el token de metadatos de la clase genérica que se especifique, así como el elemento ClassID de su clase primaria y el elemento ClassID de cada argumento de tipo, si lo hay, de esa clase.

Sintaxis

HRESULT GetClassIDInfo2(  
    [in]  ClassID classId,  
    [out] ModuleID *pModuleId,  
    [out] mdTypeDef *pTypeDefToken,  
    [out] ClassID *pParentClassId,  
    [in]  ULONG32 cNumTypeArgs,  
    [out] ULONG32 *pcNumTypeArgs,  
    [out] ClassID typeArgs[]);  

Parámetros

classId
[in] Identificador de la clase para la que se recuperará información.

pModuleId
[out] El valor de este parámetro se corresponde con un puntero que apunta al id. del módulo primario de la definición genérica abierta de la clase que se especifique.

pTypeDefToken
[out] El valor de este parámetro se corresponde con un puntero que apunta al token de metadatos de la definición genérica abierta de la clase que se especifique.

pParentClassId
[out] Puntero al identificador de la clase primaria.

cNumTypeArgs
[in] Tamaño de la matriz typeArgs.

pcNumTypeArgs
[out] Puntero al número total de elementos disponibles.

typeArgs
[out] Matriz de valores ClassID, cada uno de los cuales representa el identificador de un argumento de tipo de la clase. Cuando el método vuelve, typeArgs contendrá algunos o todos los valores ClassID disponibles.

Comentarios

El método GetClassIDInfo2 es similar al método ICorProfilerInfo::GetClassIDInfo con la diferencia de que, al usar GetClassIDInfo2, se obtiene información adicional sobre un tipo genérico.

Desde el código del generador de perfiles, puede llamarse al método ICorProfilerInfo::GetModuleMetaData para obtener una interfaz de metadatos para un módulo determinado. Después, el token de metadatos que se devuelve a la ubicación a la que pTypeDefToken hace referencia puede usarse para acceder a los metadatos de la clase.

Después de que GetClassIDInfo2 vuelva, debe comprobar que el búfer typeArgs era lo suficientemente grande como para contener todos los valores ClassID. Para ello, compare el valor al que pcNumTypeArgs apunta con el valor del parámetro cNumTypeArgs. Si pcNumTypeArgs apunta un valor mayor que cNumTypeArgs, asigne un búfer typeArgs mayor, actualice cNumTypeArgs con el nuevo tamaño de mayores dimensiones y vuelva a llamar a GetClassIDInfo2.

También tiene la opción de llamar primero a GetClassIDInfo2 con un búfer typeArgs de longitud de cero para obtener el tamaño de búfer correcto. Después, puede establecer el tamaño del búfer typeArgs en el valor devuelto en pcNumTypeArgs y volver a llamar a GetClassIDInfo2.

Requisitos

Plataformas: Vea Requisitos de sistema.

Encabezado: CorProf.idl, CorProf.h

Biblioteca: CorGuids.lib

Versiones de .NET Framework: disponible a partir de la versión 2.0

Consulte también