Ist es möglich zu folgern, dass ein Parameterinfo Objekt in einen Funktionszeiger verweist verwaltet Parametertypen enthalten?
-
05-07-2019 - |
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
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.