Partilhar via


Método ICorProfilerInfo2::GetClassIDInfo2

Obtém o módulo principal e o token de metadados para a definição genérica aberta da classe especificada, a ClassID da respetiva classe principal e o ClassID para cada argumento de tipo, se presente, da classe .

Sintaxe

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] O ID da classe para a qual as informações serão obtidas.

pModuleId
[fora] Ponteiro para o ID do módulo principal para a definição genérica aberta da classe especificada.

pTypeDefToken
[fora] Ponteiro para o token de metadados para a definição genérica aberta da classe especificada.

pParentClassId
[fora] Ponteiro para o ID da classe principal.

cNumTypeArgs
[in] O tamanho da typeArgs matriz.

pcNumTypeArgs
[fora] Ponteiro para o número total de elementos disponíveis.

typeArgs
[fora] Uma matriz de ClassID valores, cada um dos quais representa o ID de um argumento de tipo da classe. Quando o método for devolvido, typeArgs irá conter alguns ou todos os valores disponíveis ClassID .

Observações

O GetClassIDInfo2 método é semelhante ao método ICorProfilerInfo::GetClassIDInfo , mas GetClassIDInfo2 obtém informações adicionais sobre um tipo genérico.

O código do gerador de perfis pode chamar ICorProfilerInfo::GetModuleMetaData para obter uma interface de metadados para um determinado módulo. O token de metadados que é devolvido à localização referenciada pelo pTypeDefToken pode ser utilizado para aceder aos metadados da classe .

Após GetClassIDInfo2 a devolução, tem de verificar se a typeArgs memória intermédia era suficientemente grande para conter todos os ClassID valores. Para tal, compare o valor que pcNumTypeArgs aponta com o valor do cNumTypeArgs parâmetro . Se pcNumTypeArgs apontar para um valor maior do cNumTypeArgsque , aloque uma memória intermédia maior typeArgs , atualize cNumTypeArgs com o novo tamanho maior e chame GetClassIDInfo2 novamente.

Em alternativa, pode chamar GetClassIDInfo2 primeiro com uma memória intermédia de comprimento typeArgs zero para obter o tamanho correto da memória intermédia. Em seguida, pode definir o tamanho da typeArgs memória intermédia para o valor devolvido em pcNumTypeArgs e chamar GetClassIDInfo2 novamente.

Requisitos

Plataformas: Veja Requisitos de Sistema.

Cabeçalho: CorProf.idl, CorProf.h

Biblioteca: CorGuids.lib

.NET Framework Versões: Disponível desde 2.0

Ver também