我有一个CLI/C++接口,我想通过.NET Reflection检查.这是源代码中的函数签名:
class ClassA; templateclass ClassTempA; public interface class Test : BaseFunc { public: ClassTempA & SomeFunc2(ClassA inst) = 0; };
这是在.NET Reflector中检查时函数的样子:
unsafe ClassTempA* modopt(IsImplicitlyDereferenced) SomeFunc2(ClassA inst);
有没有办法通过.NET反射获取modopt属性,还是必须使用元数据非托管API?
您可以分别通过调用和来获取modopt
和modreq
信息.要说明您的类型,请参阅以下内容.System.Reflection
ParameterInfo::GetOptionalCustomModifiers()
ParameterInfo::GetRequiredCustomModifiers()
class ClassA; templateclass ClassTempA; public interface class Test : BaseFunc { public: ClassTempA & SomeFunc2(ClassA inst) = 0; }; array ^ GetModifiers() { MethodInfo^ SomeFunc2 = Test::typeid->GetMethod("SomeFunc2"); return method->ReturnParameter->GetOptionalCustomModifiers(); }