modopt和.NET反射

Mic*_*ley 5 .net reflection c++-cli

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

class ClassA;
template<typename _Type> class ClassTempA;

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

这是在.NET Reflector中检查时函数的样子:

unsafe ClassTempA<int>* modopt(IsImplicitlyDereferenced) SomeFunc2(ClassA inst);
Run Code Online (Sandbox Code Playgroud)

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

Ste*_*idi 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();
}
Run Code Online (Sandbox Code Playgroud)