Раствор 1
Если у вас есть доступ к коду .NET, самый простой способ - вернуть TypeHandle типа. В нативном коде вы можете получить доступ к MonoType
, распаковав результат вызова.
В C #:
static IntPtr GetUnderlyingTypeHandle()
{
Type type;
// ...
return type.TypeHandle.Value;
}
В нативном коде:
MonoMethod *method = ...; // Retrieve the method to call
MonoObject *obj = mono_runtime_invoke(method, NULL, NULL, NULL);
MonoType *underlyingType = *(MonoType **) mono_object_unbox(obj);
Решение 2
Если вы не можете изменить код .NET, вам необходимо вызвать геттеры TypeHandle
и Value
в собственном коде.