Est-il possible de déduire qu'un objet ParameterInfo fait référence à un pointeur de fonction contenant des types de paramètres gérés?

StackOverflow https://stackoverflow.com/questions/1608200

Question

J'utilise réflexion pour examiner la déclaration de méthode suivante et je me demande s'il est possible de déterminer que le seul paramètre de la méthode est un pointeur de fonction.

public ref class T
{
public:
    void foo(Int32 (*)(String^, array<TimeSpan>^)) { }
};

Lors de l'inspection de l'objet ParameterInfo pour le paramètre de toto , il indique que le type du paramètre est IntPtr ; cela a du sens, car un pointeur de fonction n’est pas un type CLR natif.

Étant donné que le pointeur de fonction ne contient que des types de paramètres gérés, j'espérais obtenir un contexte supplémentaire dans ParameterInfo . Je ne vois pas de propriétés ni d'attributs dans ParameterInfo et dans le type pouvant m'aider à distinguer cette instance IntPtr en tant que pointeur de fonction - existe-t-il tout?

Était-ce utile?

La solution

Après réflexion, je suis persuadé que cela n’est pas possible. Puisque l’argument de la fonction toto est un pointeur natif , le système de réflexion géré ne peut pas voir au-delà de cette couche et présente toujours l’argument sous la forme suivante: IntPtr .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top