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


Метод ICorProfilerInfo2::GetFunctionFromTokenAndTypeArgs

Получает идентификатор функции FunctionID, используя заданный маркер метаданных, содержащий класс, и значения ClassID для всех аргументов типа.

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] Идентификатор модуля, в котором находится функция.

  • funcDef
    [in] Маркер метаданных mdMethodDef, который ссылается на функцию.

  • classId
    [in] Идентификатор содержащего функцию класса.

  • cTypeArgs
    [in] Число параметров типа для данной функции. Для неуниверсальной функции это значение должно быть равным нулю.

  • typeArgs
    [in] Массив значений ClassID, каждое из которых является аргументом функции. Значение параметра typeArgs может быть равным NULL, если параметру cTypeArgs присвоено значение нуль.

  • pFunctionID
    [out] Указатель на идентификатор заданной функции FunctionID.

Заметки

Вызов метода GetFunctionFromTokenAndTypeArgs с метаданным mdMethodRef вместо маркера метаданных mdMethodDef может привести к непредсказуемым результатам. Вызывающий объект должен разрешить маркер mdMethodRef в маркер mdMethodDef во время его передачи.

Если функция еще не загружена, вызов метода GetFunctionFromTokenAndTypeArgs приведет к загрузке, которая во многих контекстах является опасной операцией. Например, при вызове этого метода во время загрузки модулей или типов может возникнуть бесконечный цикл, так как среда выполнения будет пытаться циклически загружать объекты.

В общем случае использовать метод GetFunctionFromTokenAndTypeArgs не рекомендуется. Если профилировщику нужны события для определенной функции, он должен сохранить маркеры ModuleID и mdMethodDef этой функции и воспользоваться методом ICorProfilerInfo2::GetFunctionInfo2, чтобы проверить, действительно ли данный идентификатор FunctionID является идентификатором необходимой функции.

Требования

Платформы: см. раздел Требования к системе для .NET Framework.

Заголовок: CorProf.idl, CorProf.h

Библиотека: CorGuids.lib

Версии платформы .NET Framework: 4, 3.5 с пакетом обновления 1 (SP1), 3.5, 3.0 с пакетом обновления 1 (SP1), 3.0, 2.0 с пакетом обновления 1 (SP1), 2.0

См. также

Ссылки

Интерфейс ICorProfilerInfo

Интерфейс ICorProfilerInfo2