MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / GetClassFullname

Function GetClassFullname

Source/Engine/Scripting/Runtime/Mono.cpp:112–148  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

110 static StringAnsi DotStr(".");
111
112 void GetClassFullname(MonoClass* monoClass, StringAnsi& fullname)
113 {
114 // Name
115 fullname = mono_class_get_name(monoClass);
116
117 // Outer class for nested types
118 MonoClass* nestingClass = mono_class_get_nesting_type(monoClass);
119 MonoClass* lastClass = monoClass;
120 while (nestingClass)
121 {
122 lastClass = nestingClass;
123 fullname = mono_class_get_name(nestingClass) + PlusStr + fullname;
124 nestingClass = mono_class_get_nesting_type(nestingClass);
125 }
126
127 // Namespace
128 const char* lastClassNamespace = mono_class_get_namespace(lastClass);
129 if (lastClassNamespace && *lastClassNamespace)
130 fullname = lastClassNamespace + DotStr + fullname;
131
132 // Generic instance arguments
133 MonoType* mType = mono_class_get_type(monoClass);
134 if (mType && mType->type == MONO_TYPE_GENERICINST)
135 {
136 fullname += '[';
137 StringAnsi tmp;
138 for (unsigned int i = 0; i < mType->data.generic_class->context.class_inst->type_argc; i++)
139 {
140 if (i != 0)
141 fullname += ',';
142 MType* argType = mType->data.generic_class->context.class_inst->type_argv[i];
143 GetClassFullname(mono_class_from_mono_type(argType), tmp);
144 fullname += tmp;
145 }
146 fullname += ']';
147 }
148 }
149
150 MClass* FindClass(MonoClass* monoClass, bool addIfMissing = true)
151 {

Callers 5

ProcessGroupPackingMethod · 0.85
InvokeMethodMethod · 0.85
GetFieldValueMethod · 0.85
SetFieldValueMethod · 0.85
Mono.cppFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected