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] 指定類別開放式泛型定義的父模組識別碼指標。
pTypeDefToken
[out] 指定類別開放式泛型定義的中繼資料語彙基元。
pParentClassId
[out] 父類別 ID 的指標。
cNumTypeArgs
[in] typeArgs
陣列的大小。
pcNumTypeArgs
[out] 可用的項目總數之指標。
typeArgs
[out] 一組 ClassID
值的陣列,其中每一項各代表此類別之型別引數的 ID。 方法傳回時, typeArgs
將包含部分或所有可用的 ClassID
值。
備註
GetClassIDInfo2
方法類似於 ICorProfilerInfo::GetClassIDInfo 方法,但 GetClassIDInfo2
會取得泛型型別的其他資訊。
分析工具程式碼可以呼叫 ICorProfilerInfo::GetModuleMetaData 來取得特定模組的中繼資料介面。 然後,傳回至 pTypeDefToken
所參考位置的中繼資料語彙基元可以用來存取此類別的中繼資料。
GetClassIDInfo2
傳回之後,您必須確認 typeArgs
緩衝區夠大,以包含所有 ClassID
的值。 若要這樣做,請比對 pcNumTypeArgs
指向的值和 cNumTypeArgs
參數。 如果 pcNumTypeArgs
指向大於 cNumTypeArgs
的值,請配置較大的 typeArgs
緩衝區,並以較大的大小來更新 cNumTypeArgs
,然後再次呼叫 GetClassIDInfo2
。
或者,您也可以先使用長度為零的 typeArgs
緩衝區來呼叫 GetClassIDInfo2
,以取得正確的緩衝區大小。 然後您可以設定 typeArgs
緩衝區大小為在 pcNumTypeArgs
中傳回的值,並且再呼叫 GetClassIDInfo2
一次。
規格需求
平台:請參閱系統需求。
標頭: CorProf.idl、CorProf.h
程式庫:CorGuids.lib
.NET Framework版本:自 2.0 起提供