Поделиться через


Метод 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.

См. также раздел