문제
.NET 반사를 통해 검사하고 싶은 CLI/C ++ 인터페이스가 있습니다. 소스 코드의 기능 서명은 다음과 같습니다.
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를 사용해야합니까?
해결책
당신은 얻을 수 있습니다 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();
}
제휴하지 않습니다 StackOverflow