5

我有一个 CLI/C++ 接口,我想通过 .NET Reflection 进行检查。这是源代码中的函数签名:

class ClassA;
template<typename _Type> class ClassTempA;

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

以下是在 .NET Reflector 中检查该函数时的样子:

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

有没有办法通过 .NET 反射获取 modopt 属性,还是必须使用元数据非托管 API?

4

1 回答 1

7

您可以通过分别调用和来获取modoptmodreq信息。为了说明您的类型,请参阅以下内容。System.ReflectionParameterInfo::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 回答