// bytes to Object public static Object getObject(byte[] arr) { CommandMsg str = new CommandMsg(); //int size = Marshal.SizeOf(str); int size = arr.Length; IntPtr ptr = Marshal.AllocHGlobal(size); Marshal.Copy(arr, 0, ptr, size); str = (CommandMsg)Marshal.PtrToStructure(ptr, str.GetType()); Marshal.FreeHGlobal(ptr); return(str); }