获取指定类的打开泛型定义的父模块和元数据标记、 ClassID 其父类的父类,以及 ClassID 类的每个类型参数(如果存在)。
Syntax
HRESULT GetClassIDInfo2(
[in] ClassID classId,
[out] ModuleID *pModuleId,
[out] mdTypeDef *pTypeDefToken,
[out] ClassID *pParentClassId,
[in] ULONG32 cNumTypeArgs,
[out] ULONG32 *pcNumTypeArgs,
[out] ClassID typeArgs[]);
Parameters
classId [in]将为其检索信息的类的 ID。
pModuleId [out]指向指定类的打开泛型定义的父模块 ID 的指针。
pTypeDefToken [out]指向指定类的打开泛型定义的元数据标记的指针。
pParentClassId [out]指向父类 ID 的指针。
cNumTypeArgs [in]数组的大小 typeArgs 。
pcNumTypeArgs [out]指向可用元素总数的指针。
typeArgs [out]一个 ClassID 值数组,其中每个值表示类的类型参数的 ID。 方法返回时, typeArgs 将包含部分或全部可用 ClassID 值。
Remarks
该方法 GetClassIDInfo2 类似于 ICorProfilerInfo::GetClassIDInfo 方法,但 GetClassIDInfo2 获取有关泛型类型的附加信息。
探查器代码可以调用 ICorProfilerInfo::GetModuleMetaData 以获取给定模块的 元数据 接口。 然后,返回到所引用位置的 pTypeDefToken 元数据令牌可用于访问类的元数据。
返回后 GetClassIDInfo2 ,必须验证 typeArgs 缓冲区是否足够大,足以包含所有 ClassID 值。 为此,请将指向的值 pcNumTypeArgs 与参数的值 cNumTypeArgs 进行比较。 如果 pcNumTypeArgs 指向大于 cNumTypeArgs的值,请分配更大的 typeArgs 缓冲区,使用新的、更大的大小进行更新 cNumTypeArgs ,然后再次调用 GetClassIDInfo2 。
或者,可以使用零长度GetClassIDInfo2缓冲区首次调用typeArgs以获取正确的缓冲区大小。 然后,可以将缓冲区大小设置为 typeArgs 返回 pcNumTypeArgs 的值,然后再次调用 GetClassIDInfo2 。
Requirements
平台:请参阅系统要求。
页眉: CorProf.idl、CorProf.h
Library: CorGuids.lib
.NET Framework 版本:自 2.0 起提供