É possível inferir que um objeto ParameterInfo refere-se a um ponteiro de função que contém tipos de parâmetros gerenciados?

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

Pergunta

Eu estou usando a reflexão para examinar a seguinte declaração de método e estou querendo saber se é possível determinar que o único parâmetro do método é um ponteiro de função.

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

Ao inspecionar o objeto ParameterInfo para o parâmetro de foo, mostra que o tipo do parâmetro é IntPtr; isso faz sentido uma vez que um ponteiro de função não é um tipo CLR nativo.

Uma vez que o ponteiro de função contém apenas conseguiu tipos de parâmetros, eu estava esperando para obter algum contexto extra no ParameterInfo. Eu não vejo quaisquer propriedades ou atributos em ParameterInfo e Type que podem me ajudar a distinguir esta instância IntPtr como um ponteiro de função - há alguma

?
Foi útil?

Solução

Depois de alguma reflexão, eu estou muito certo de que este não é possível. Desde o argumento da função para foo é uma nativa ponteiro, a gerenciada sistema de reflexão não pode ver além dessa camada e sempre apresentar o argumento como IntPtr.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top