1

リフレクションを使用して次のメソッド宣言を調べていますが、メソッドの唯一のパラメーターが関数ポインターであると判断できるかどうか疑問に思っています。

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

ParameterInfoオブジェクトのパラメータを検査するfooと、パラメータのタイプがIntPtr;であることが示されます。関数ポインタはネイティブCLR型ではないため、これは理にかなっています。

関数ポインターには管理対象パラメータータイプのみが含まれているため、で追加のコンテキストを取得したいと考えていましたParameterInfoParameterInfoにプロパティや属性が表示されないので、このインスタンスを関数ポインタとしてType区別するのに役立つ可能性があります-何かありますか?IntPtr

4

1 に答える 1

0

少し考えた結果、これは不可能だと確信しています。関数の引数tofooネイティブポインタであるため、マネージドリフレクションシステムはそのレイヤーを超えて見ることができず、常に引数をとして表示しIntPtrます。

于 2010-09-07T19:45:01.533 に答える