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 を表します。 このメソッドが戻るとき、使用できる ClassID
値の一部またはすべてが typeArgs
に格納されます。
解説
GetClassIDInfo2
メソッドは ICorProfilerInfo::GetClassIDInfo メソッドに似ていますが、GetClassIDInfo2
では、ジェネリック型についての追加情報が取得されます。
プロファイラー コードで ICorProfilerInfo::GetModuleMetaData を呼び出して、指定したモジュールの metadata インターフェイスを取得できます。 pTypeDefToken
によって参照される場所に返されるメタデータ トークンを使用すると、クラスのメタデータにアクセスできます。
GetClassIDInfo2
から制御が戻ったら、typeArgs
バッファーのサイズが十分で、すべての ClassID
値を格納できたかどうかを確認する必要があります。 これを行うには、pcNumTypeArgs
が指している値を cNumTypeArgs
パラメーターの値と比較します。 pcNumTypeArgs
が指している値が cNumTypeArgs
の値より大きい場合は、typeArgs
バッファーの割り当てを増やし、cNumTypeArgs
を新しい大きいサイズに更新して、GetClassIDInfo2
を再度呼び出します。
別の方法として、最初に GetClassIDInfo2
を長さゼロの typeArgs
バッファーで呼び出して、適切なバッファーのサイズを取得します。 その後、typeArgs
バッファーのサイズを pcNumTypeArgs
に返された値に設定し、GetClassIDInfo2
を再度呼び出します。
必要条件
:「システム要件」を参照してください。
ヘッダー : CorProf.idl、CorProf.h
ライブラリ: CorGuids.lib
.NET Framework のバージョン: 2.0 以降で使用可能
関連項目
.NET