réflexion modopt et .NET
-
03-07-2019 - |
Question
Je souhaite examiner une interface CLI / C ++ via .NET Reflection. Voici la signature de la fonction dans le code source:
class ClassA;
template<typename _Type> class ClassTempA;
public interface class Test : BaseFunc {
public:
ClassTempA<int>& SomeFunc2(ClassA inst) = 0;
};
Voici à quoi ressemble la fonction lorsqu'elle est examinée dans .NET Reflector:
unsafe ClassTempA<int>* modopt(IsImplicitlyDereferenced) SomeFunc2(ClassA inst);
Existe-t-il un moyen d'obtenir les attributs modopt via une réflexion .NET ou dois-je utiliser les métadonnées API non gérée?
La solution
Vous pouvez obtenir les informations modopt
et modreq
auprès de System.Reflection
en appelant ParameterInfo :: GetOptionalCustomModifiers ()
et ParameterInfo :: GetRequiredCustomModifiers ()
, respectivement. Pour illustrer vos types, voir ce qui suit.
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();
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow