public static object BytesToEnum(byte[] b, Type t) { SafePtr sp = b; int x = Blob.BlobTypeSize(Blob.TypeToBlobType(t.GetEnumUnderlyingType())); switch (x) { case 1: { if (Native.Unsigned(t)) { return(Enum.ToObject(t, sp[0L])); } else { return(Enum.ToObject(t, sp.get_SByteAt(0L))); } break; } case 2: { if (Native.Unsigned(t)) { return(Enum.ToObject(t, sp.get_UShortAt(0L))); } else { return(Enum.ToObject(t, sp.get_ShortAt(0L))); } break; } case 4: { if (Native.Unsigned(t)) { return(Enum.ToObject(t, sp.get_UIntegerAt(0L))); } else { return(Enum.ToObject(t, sp.get_IntegerAt(0L))); } break; } case 8: { if (Native.Unsigned(t)) { return(Enum.ToObject(t, sp.get_ULongAt(0L))); } else { return(Enum.ToObject(t, sp.get_LongAt(0L))); } break; } } return(null); }