public static FrameHeader FromBytes(byte[] arr) { FrameHeader header = new FrameHeader(); int size = Marshal.SizeOf(header); Trace.Assert(size == StructSize); IntPtr ptr = Marshal.AllocHGlobal(size); Marshal.Copy(arr, 0, ptr, size); header = (FrameHeader)Marshal.PtrToStructure(ptr, header.GetType()); Marshal.FreeHGlobal(ptr); return(header); }