Ist es möglich zu folgern, dass ein Parameterinfo Objekt in einen Funktionszeiger verweist verwaltet Parametertypen enthalten?

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

Frage

Ich bin Reflexion mit der folgende Verfahren Erklärung zu prüfen und frag mich, ob es möglich ist, zu bestimmen, dass die einzige Parameter der Methode ist ein Funktionszeiger.

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

Wenn die ParameterInfo Objekt Inspektion für foo des Parameters, zeigt es, dass der Typ des Parameters IntPtr ist; Dies macht Sinn, da ein Funktionszeiger nicht ein native CLR-Typ ist.

Da die Funktionszeiger nur Parametertypen verwaltet enthalten, ich habe gehofft, etwas mehr Kontext, in dem ParameterInfo zu bekommen. Ich sehe keine Eigenschaften oder Attribute in ParameterInfo und Type, die mich zeichnen diese IntPtr Instanz als Funktionszeiger kann helfen - gibt es irgendwelche

?
War es hilfreich?

Lösung

Nach einigem Nachdenken, ich bin sehr sicher, dass dies nicht möglich ist. Da das Funktionsargument zu foo ist ein nativer Zeiger, die verwaltet Reflexionssystem kann nicht jenseits dieser Ebene sieht und wird das Argument als IntPtr immer vorhanden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top