public static NavData FromBytes(byte[] buffer) { var result = new NavData(); using (var stream = new MemoryStream(buffer)) using (var reader = new BinaryReader(stream)) { ReadHeaderInformation(result, reader); NavDataTag optionId; do { optionId = (NavDataTag)reader.ReadUInt16(); ushort size = reader.ReadUInt16(); result.AddOption(optionId, size, reader); } while (optionId != NavDataTag.Checksum); } result.ValidateChecksum(buffer); return(result); }