共用方式為


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 起提供

另請參閱