ICorProfilerInfo2::GetClassFromTokenAndTypeArgs 方法

使用指定的元数据标记和任何类型参数的 ClassID 值获取类型的 ClassID。

HRESULT GetClassFromTokenAndTypeArgs(
    [in] ModuleID moduleID,
    [in] mdTypeDef typeDef,
    [in] ULONG32 cTypeArgs,
    [in, size_is(cTypeArgs)] ClassID typeArgs[],
    [out] ClassID* pClassID);

参数

  • moduleID
    [in] 该类型驻留的模块的 ID。

  • typeDef
    [in] 一个引用类型的 mdTypeDef 元数据标记。

  • cTypeArgs
    [in] 给定类型的类型参数的数目。 对于非泛型类型,此值必须为零。

  • typeArgs
    [in] 一个由 ClassID 值组成的数组,其中每个值均是类型的一个参数。 如果将 cTypeArgs 设置为零,则 typeArgs 的值可为 NULL。

  • pClassID
    [out] 一个指向指定类型的 ClassID 的指针。

备注

使用 mdTypeRef 而不是 mdTypeDef 元数据标记调用 GetClassFromTokenAndTypeArgs 方法可以产生不可预知的结果;调用方在传递 mdTypeRef 时应将其解析为 mdTypeDef

如果类型尚未加载,则调用 GetClassFromTokenAndTypeArgs 将触发加载,这在许多上下文中都是一种危险操作。 例如,在加载模块或其他类型期间调用此方法会在运行时尝试循环加载某些内容时导致无限循环。

通常,不鼓励使用 GetClassFromTokenAndTypeArgs。 如果探查器对特定类型的事件感兴趣,它们应存储该类型的 ModuleID 和 mdTypeDef,并使用 ICorProfilerInfo2::GetClassIDInfo2 检查给定的 ClassID 是否为所需类型的 ID。

要求

**平台:**请参见 .NET Framework 系统要求

**头文件:**CorProf.idl、CorProf.h

**库:**CorGuids.lib

**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0

请参见

参考

ICorProfilerInfo 接口

ICorProfilerInfo2 接口