ICorProfilerInfo2::GetFunctionFromTokenAndTypeArgs, méthode
Obtient le FunctionID d'une fonction à l'aide du jeton de métadonnées spécifié, de la classe conteneur et des valeurs ClassID d'arguments de type.
HRESULT GetFunctionFromTokenAndTypeArgs(
[in] ModuleID moduleID,
[in] mdMethodDef funcDef,
[in] ClassID classId,
[in] ULONG32 cTypeArgs,
[in, size_is(cTypeArgs)] ClassID typeArgs[],
[out] FunctionID* pFunctionID);
Paramètres
moduleID
[in] ID du module dans lequel réside la fonction.funcDef
[in] Jeton de métadonnées mdMethodDef qui référence la fonction.classId
[in] ID de la classe conteneur de la fonction.cTypeArgs
[in] Nombre de paramètres de type pour la fonction donnée. Cette valeur doit être zéro pour les fonctions non génériques.typeArgs
[in] Tableau de valeurs ClassID, qui correspondent chacune à un argument de la fonction. La valeur de typeArgs peut être NULL si cTypeArgs est égal à zéro.pFunctionID
[out] Pointeur vers l'FunctionID de la fonction spécifiée.
Notes
Lorsque vous appelez la méthode GetFunctionFromTokenAndTypeArgs avec des métadonnées mdMethodRef au lieu d'un jeton de métadonnées mdMethodDef, les résultats risquent d'être imprévisibles. Les appelants doivent résoudre le mdMethodRef en mdMethodDef lors de son passage.
Si la fonction n'est pas déjà chargée, l'appel de GetFunctionFromTokenAndTypeArgs déclenchera le chargement, qui est une opération dangereuse dans de nombreux contextes. Par exemple, l'appel de cette méthode pendant le chargement de modules ou de types peut provoquer une boucle infinie, car le runtime tente de charger des éléments de façon circulaire.
En général, l'utilisation de GetFunctionFromTokenAndTypeArgs est déconseillée. Si les profileurs sont intéressés par les événements d'une fonction particulière, ils doivent stocker le ModuleID et le mdMethodDef de cette fonction et utiliser ICorProfilerInfo2::GetClassIDInfo2 pour vérifier si un FunctionID donné correspond à celui de la fonction souhaitée.
Configuration requise
Plateformes : consultez Configuration requise du .NET Framework.
En-tête : CorProf.idl, CorProf.h
Bibliothèque : CorGuids.lib
Versions du .NET Framework : 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0