È possibile dedurre che un oggetto ParameterInfo si riferisce a un puntatore a funzione contenente tipi di parametri gestiti?

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

Domanda

Sto usando reflection per esaminare la seguente dichiarazione di metodo e mi chiedo se sia possibile determinare che l'unico parametro del metodo sia un puntatore a funzione.

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

Quando si controlla l'oggetto ParameterInfo per il parametro foo , mostra che il tipo di parametro è IntPtr ; questo ha senso poiché un puntatore a funzione non è un tipo CLR nativo.

Poiché il puntatore a funzione contiene solo tipi di parametri gestiti, speravo di ottenere un contesto aggiuntivo nel ParameterInfo . Non vedo alcuna proprietà o attributo in ParameterInfo e Type che possa aiutarmi a distinguere questa istanza IntPtr come puntatore a funzione - ci sono qualsiasi?

È stato utile?

Soluzione

Dopo aver riflettuto, sono molto sicuro che ciò non sia possibile. Poiché l'argomento della funzione foo è un puntatore nativo , il sistema di riflessione gestito non può vedere oltre quel livello e presenterà sempre l'argomento come IntPtr .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top