Метод 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] Идентификатор класса, для которого будут извлекаться сведения.
pModuleId
[out] Указатель на идентификатор родительского модуля для открытого универсального определения указанного класса.
pTypeDefToken
[out] Указатель на маркер метаданных для открытого универсального определения указанного класса.
pParentClassId
[out] Указатель на идентификатор родительского класса.
cNumTypeArgs
[in] Размер массива typeArgs
.
pcNumTypeArgs
[out] Указатель на общее число доступных элементов.
typeArgs
[out] Массив значений ClassID
, каждое из которых представляет идентификатор аргумента типа класса. При возврате метода в массиве typeArgs
будут содержаться все или некоторые доступные значения ClassID
.
Комментарии
Метод GetClassIDInfo2
аналогичен методу ICorProfilerInfo::GetClassIDInfo , но GetClassIDInfo2
получает дополнительные сведения об универсальном типе.
Код профилировщика может вызывать ICorProfilerInfo::GetModuleMetaData для получения интерфейса метаданных для данного модуля. Токен метаданных, возвращенный в расположение, на которое ссылается 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.