문제

.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();
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top