ICorProfilerInfo2::GetFunctionFromTokenAndTypeArgs 方法

通过使用指定的元数据标记(包含类和任何类型参数的 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。 如果探查器对特定函数的事件感兴趣,则它们应该存储该函数的 ModuleIDmdMethodDef,并使用 ICorProfilerInfo2::GetFunctionInfo2 检查给定的 FunctionID 是否是所需函数的 ID。

要求

平台:请参阅系统要求

头文件: CorProf.idl、CorProf.h

库:CorGuids.lib

.NET Framework 版本:自 2.0 起可用

另请参阅