private static byte[] GetBytes(MessageRoomBody mrb) { int size = Marshal.SizeOf(mrb); byte[] arr = new byte[size]; IntPtr ptr = Marshal.AllocHGlobal(size); Marshal.StructureToPtr(mrb, ptr, true); Marshal.Copy(ptr, arr, 0, size); Marshal.FreeHGlobal(ptr); return arr; }
private static MessageRoomBody FromBytes(byte[] arr) { MessageRoomBody str = new MessageRoomBody(); int size = Marshal.SizeOf(str); IntPtr ptr = Marshal.AllocHGlobal(size); Marshal.Copy(arr, 0, ptr, size); str = (MessageRoomBody) Marshal.PtrToStructure(ptr, str.GetType()); Marshal.FreeHGlobal(ptr); return str; }