#include "il2cpp-config.h" #include "icalls/mscorlib/System.Reflection/MemberInfo.h" #include "vm/Exception.h" #include "il2cpp-object-internals.h" #include "vm/Reflection.h" #include "vm/Field.h" #include "vm/Property.h" #include "vm/Method.h" #include "vm/Event.h" #include "vm/Type.h" namespace il2cpp { namespace icalls { namespace mscorlib { namespace System { namespace Reflection { int32_t MemberInfo::get_MetadataToken(Il2CppObject* /* System.Reflection.MemberInfo */ self) { if (vm::Reflection::IsField(self)) { Il2CppReflectionField* field = (Il2CppReflectionField*)self; return vm::Field::GetToken(field->field); } else if (vm::Reflection::IsAnyMethod(self)) { Il2CppReflectionMethod* method = (Il2CppReflectionMethod*)self; return vm::Method::GetToken(method->method); } else if (vm::Reflection::IsProperty(self)) { Il2CppReflectionProperty* prop = (Il2CppReflectionProperty*)self; return vm::Property::GetToken(prop->property); } else if (vm::Reflection::IsEvent(self)) { Il2CppReflectionMonoEvent* eventInfo = (Il2CppReflectionMonoEvent*)self; return vm::Event::GetToken(eventInfo->eventInfo); } else if (vm::Reflection::IsType(self)) { Il2CppReflectionType* type = (Il2CppReflectionType*)self; return vm::Type::GetToken(type->type); } else { NOT_SUPPORTED_IL2CPP(MemberInfo::get_MetadataToken, "This icall is not supported by il2cpp."); } return 0; } } /* namespace Reflection */ } /* namespace System */ } /* namespace mscorlib */ } /* namespace icalls */ } /* namespace il2cpp */