使用指定的元数据标记、包含类和任意类型参数的 ClassID 值来获取某个函数的 FunctionID。
HRESULT GetFunctionFromTokenAndTypeArgs(
[in] ModuleID moduleID,
[in] mdMethodDef funcDef,
[in] ClassID classId,
[in] ULONG32 cTypeArgs,
[in, size_is(cTypeArgs)] ClassID typeArgs[],
[out] FunctionID* pFunctionID);
参数
moduleID
[in] 函数所驻留的模块的 ID。funcDef
[in] 引用该函数的 mdMethodDef 元数据标记。classId
[in] 函数的包含类的 ID。cTypeArgs
[in] 给定函数的类型参数的数目。 对于非泛型函数,此值必须为零。typeArgs
[in] 一个由 ClassID 值构成的数组,其中的每个值均是该函数的参数。 如果将 cTypeArgs 设置为零,则 typeArgs 的值可为 NULL。pFunctionID
[out] 一个指向指定函数的 FunctionID 的指针。
备注
使用 mdMethodRef 元数据(而不是 mdMethodDef 元数据标记)调用 GetFunctionFromTokenAndTypeArgs 方法可能会产生不可预知的结果。 调用方在传递 mdMethodRef 时应将其解析为 mdMethodDef。
如果该函数尚未加载,则调用 GetFunctionFromTokenAndTypeArgs 会引起加载,这在许多上下文中都是一种危险操作。 例如,在加载模块或类型期间调用此方法会在运行时尝试循环加载某些内容时导致无限循环。
通常,不鼓励使用 GetFunctionFromTokenAndTypeArgs。 如果探查器关注特定函数的事件,它们应存储该函数的 ModuleID 和 mdMethodDef,并使用 ICorProfilerInfo2::GetFunctionInfo2 检查给定的 FunctionID 是否是所需函数的 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