ICorProfilerInfo2::GetClassIDInfo2 方法
取得指定之泛型類別的父模組和中繼資料語彙基元、其父類別的 ClassID,以及此類別的每個型別引數 (如果有的話) 之 ClassID。
HRESULT GetClassIDInfo2(
[in] ClassID classId,
[out] ModuleID *pModuleId,
[out] mdTypeDef *pTypeDefToken,
[out] ClassID *pParentClassId,
[in] ULONG32 cNumTypeArgs,
[out] ULONG32 *pcNumTypeArgs,
[out] ClassID typeArgs[]);
參數
classId
[in] 將擷取其資訊的類別 ID。pModuleId
[out] 此類別之父模組 ID 的指標。pTypeDefToken
[out] 此類別之中繼資料語彙基元的指標。pParentClassId
[out] 此父類別 ID 的指標。cNumTypeArgs
[in] typeArgs 陣列的大小。pcNumTypeArgs
[out] 可用元素總數的指標。typeArgs
[out] ClassID 值的陣列,其中每個值分別表示此類別之型別引數的 ID。 傳回方法時,typeArgs 將會包含部分或所有可用的 ClassID 值。
備註
GetClassIDInfo2 方法類似 ICorProfilerInfo::GetClassIDInfo 方法,但 GetClassIDInfo2 還會取得泛型型別的其他資訊。
程式碼分析工具會呼叫 ICorProfilerInfo::GetModuleMetaData,以取得指定模組的 metadata 介面。 傳回至 pTypeDefToken 所參考之位置的中繼資料語彙基元就可以用來存取此類別的中繼資料。
傳回 GetClassIDInfo2 之後,您必須驗證 typeArgs 緩衝區夠大,足以包含所有 ClassID 值。 若要完成這項工作,請比較 pcNumTypeArgs 所指向的值與 cNumTypeArgs 參數的值。 如果 pcNumTypeArgs 指向大於 cNumTypeArgs 的值,請配置較大的 typeArgs 緩衝區,以較大的大小來更新 cNumTypeArgs,然後重新呼叫 GetClassIDInfo2。
另外,您也可以先使用長度為零的 typeArgs 緩衝區來呼叫 GetClassIDInfo2,以取得正確的緩衝區大小。 接著您就可以將 typeArgs 緩衝區大小設定為 pcNumTypeArgs 中傳回的值,並再次呼叫 GetClassIDInfo2。
如需這兩種方法的詳細資訊,請參閱程式碼剖析 API 方法慣例。
需求
**平台:**請參閱 .NET Framework 系統需求。
**標頭:**CorProf.idl、CorProf.h
**程式庫:**CorGuids.lib
**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0