是否可以推断ParameterInfo对象引用包含托管参数类型的函数指针?
-
05-07-2019 - |
题
我正在使用反射检查以下方法声明,并想知道是否可以确定方法的唯一参数是函数指针。
public ref class T
{
public:
void foo(Int32 (*)(String^, array<TimeSpan>^)) { }
};
当检查 foo
的参数的 ParameterInfo
对象时,它显示参数的类型是 IntPtr
;这是有道理的,因为函数指针不是本机CLR类型。
由于函数指针只包含托管参数类型,我希望在 ParameterInfo
中获得一些额外的上下文。我没有在 ParameterInfo
和 Type
中看到任何可以帮助我将这个 IntPtr
实例区分为函数指针的属性或属性 - 是否存在任何?
解决方案
经过一番思考后,我非常确定这是不可能的。由于
foo
的函数参数是 native 指针,因此托管反射系统无法超越该层,并始终将参数显示为<代码> IntPtr的代码> 不隶属于 StackOverflow