Можно ли сделать вывод, что объект ParameterInfo ссылается на указатель функции, содержащий типы управляемых параметров?

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

Вопрос

Я использую рефлексию для изучения следующего объявления метода, и мне интересно, можно ли определить, что единственным параметром метода является указатель на функцию.

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

При проверке объекта ParameterInfo для параметра foo он показывает, что типом параметра является IntPtr ; это имеет смысл, поскольку указатель на функцию не является собственным типом CLR.

Поскольку указатель функции содержит только управляемые типы параметров, я надеялся получить дополнительный контекст в ParameterInfo . Я не вижу никаких свойств или атрибутов в ParameterInfo и Type , которые могли бы помочь мне отличить этот экземпляр IntPtr как указатель на функцию - есть ли любой?

Это было полезно?

Решение

Подумав, я уверен, что это невозможно. Поскольку аргумент функции для foo является указателем native , система отражения managed не может видеть за этим слоем и всегда будет представлять аргумент как <код> IntPtr .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top