Metodo ICorProfilerInfo2::GetClassIDInfo2

Ottiene il modulo padre e il token di metadati per la definizione generica aperta della classe specificata, la ClassID relativa classe padre e l'oggetto ClassID per ogni argomento di tipo, se presente, della classe .

Sintassi

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

Parametri

classId
[in] ID della classe per la quale verranno recuperate le informazioni.

pModuleId
[out] Puntatore all'ID del modulo padre per la definizione generica aperta della classe specificata.

pTypeDefToken
[out] Puntatore al token di metadati per la definizione generica aperta della classe specificata.

pParentClassId
[out] Puntatore all'ID della classe padre.

cNumTypeArgs
[in] Dimensione della matrice typeArgs.

pcNumTypeArgs
[out] Puntatore al numero complessivo di elementi disponibili.

typeArgs
[out] Matrice di valori ClassID, ognuno dei quali rappresenta l'ID di un argomento di tipo della classe. Quando il metodo restituisce i risultati, typeArgs conterrà alcuni o tutti i valori ClassID disponibili.

Commenti

Il GetClassIDInfo2 metodo è simile al metodo ICorProfilerInfo::GetClassIDInfo , ma GetClassIDInfo2 ottiene informazioni aggiuntive su un tipo generico.

Il codice del profiler può chiamare ICorProfilerInfo::GetModuleMetaData per ottenere un'interfaccia dei metadati per un determinato modulo. Il token di metadati restituito al percorso a cui viene fatto riferimento tramite pTypeDefToken può quindi essere usato per accedere ai metadati per la classe.

Dopo il completamento del metodo GetClassIDInfo2, è necessario verificare che il buffer typeArgs sia abbastanza grande per contenere tutti i valori ClassID. A tale scopo, confrontare il valore a cui punta pcNumTypeArgs con il valore del parametro cNumTypeArgs. Se pcNumTypeArgs punta a un valore maggiore di cNumTypeArgs, allocare un buffer typeArgs più grande, aggiornare cNumTypeArgs con la nuova dimensione e chiamare nuovamente GetClassIDInfo2.

In alternativa, è possibile chiamare innanzitutto GetClassIDInfo2 con un buffer typeArgs di lunghezza zero per ottenere le dimensioni del buffer corrette. È quindi possibile impostare le dimensioni del buffer typeArgs sul valore restituito in pcNumTypeArgs e chiamare nuovamente GetClassIDInfo2.

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: CorProf.idl, CorProf.h

Libreria: CorGuids.lib

Versioni di .NET Framework: Disponibile da 2.0

Vedi anche