Metodo ICorProfilerInfo2::GetClassIDInfo2
Ottiene il modulo padre e il token di metadati della classe generica specificata, il valore ClassID della relativa classe padre e il valore ClassID per ciascun argomento di tipo della classe, se presente.
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 della classe.pTypeDefToken
[out] Puntatore al token di metadati per la classe.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.
Note
Il metodo GetClassIDInfo2 è 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 di metadati per un determinato modulo. Il token di metadati restituito al percorso a cui viene fatto riferimento tramite pTypeDefToken può quindi essere utilizzato per accedere ai metadati per la classe.
Dopo la restituzione dei risultati da parte di GetClassIDInfo2, è necessario verificare se il buffer typeArgs fosse abbastanza grande per contenere i valori ClassID. A tal fine, confrontare il valore al quale 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 dapprima GetClassIDInfo2 con un buffer typeArgs di lunghezza zero per ottenere la dimensione del buffer corretta. È quindi possibile impostare la dimensione del buffer typeArgs sul valore restituito in pcNumTypeArgs e chiamare nuovamente GetClassIDInfo2.
Per ulteriori informazioni su questi due approcci, vedere Convenzioni dei metodi dell'API di profilatura.
Requisiti
Piattaforme: vedere Requisiti di sistema di .NET Framework.
Intestazione: CorProf.idl, CorProf.h
Libreria: CorGuids.lib
Versioni di .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0