private string GetTypeNameDebug(RuntimeTypeHandle rtth) { string result; if (RuntimeAugments.IsGenericType(rtth)) { RuntimeTypeHandle[] typeArgumentsHandles; RuntimeTypeHandle openTypeDef = RuntimeAugments.GetGenericInstantiation(rtth, out typeArgumentsHandles);; result = GetTypeNameDebug(openTypeDef) + "<"; for (int i = 0; i < typeArgumentsHandles.Length; i++) { result += (i == 0 ? "" : ",") + GetTypeNameDebug(typeArgumentsHandles[i]); } return(result + ">"); } else { System.Reflection.Runtime.General.QTypeDefinition qTypeDefinition; // Check if we have metadata. if (Instance.TryGetMetadataForNamedType(rtth, out qTypeDefinition)) { return(qTypeDefinition.NativeFormatHandle.GetFullName(qTypeDefinition.NativeFormatReader)); } } result = "EEType:0x"; ulong num = (ulong)RuntimeAugments.GetPointerFromTypeHandle(rtth); int shift = IntPtr.Size * 8; const string HexDigits = "0123456789ABCDEF"; while (shift > 0) { shift -= 4; int digit = (int)((num >> shift) & 0xF); result += HexDigits[digit]; } return(result); }