¿Es posible inferir que un objeto ParameterInfo se refiere a un puntero de función que contiene tipos de parámetros administrados?

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

Pregunta

Estoy utilizando la reflexión para examinar la siguiente declaración de método y me pregunto si es posible determinar que el único parámetro del método es un indicador de función.

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

Al inspeccionar el objeto ParameterInfo para el parámetro foo , muestra que el tipo de parámetro es IntPtr ; esto tiene sentido ya que el puntero de una función no es un tipo CLR nativo.

Dado que el puntero a la función solo contiene tipos de parámetros administrados, esperaba obtener algún contexto adicional en ParameterInfo . No veo ninguna propiedad o atributo en ParameterInfo y Type que pueda ayudarme a distinguir esta instancia de IntPtr como un indicador de función. alguna?

¿Fue útil?

Solución

Después de pensarlo, estoy muy seguro de que esto no es posible. Dado que el argumento de la función para foo es un puntero nativo , el sistema de reflexión administrado no puede ver más allá de esa capa y siempre presentará el argumento como IntPtr .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top