5

.NETReflectionを介して調べたいCLI/C++インターフェイスがあります。ソースコードの関数シグネチャは次のとおりです。

class ClassA;
template<typename _Type> class ClassTempA;

public interface class Test : BaseFunc {
public:
    ClassTempA<int>& SomeFunc2(ClassA inst) = 0;
};

.NETReflectorで調べたときの関数は次のようになります。

unsafe ClassTempA<int>* modopt(IsImplicitlyDereferenced) SomeFunc2(ClassA inst);

.NETリフレクションを介してmodopt属性を取得する方法はありますか、それともメタデータアンマネージAPIを使用する必要がありますか?

4

1 に答える 1

7

modoptとのmodreq情報を取得するには、それぞれとSystem.Reflectionを呼び出します。タイプを説明するには、以下を参照してください。ParameterInfo::GetOptionalCustomModifiers()ParameterInfo::GetRequiredCustomModifiers()

class ClassA;
template<typename _Type> class ClassTempA;

public interface class Test : BaseFunc {
public:
    ClassTempA<int>& SomeFunc2(ClassA inst) = 0;
};

array<Type^>^ GetModifiers()
{
    MethodInfo^ SomeFunc2 = Test::typeid->GetMethod("SomeFunc2");
    return method->ReturnParameter->GetOptionalCustomModifiers();
}
于 2009-10-02T00:51:47.630 に答える