public static byte[] Encode(IDownloadInfoExpand packet) { using (MemoryStream ms = new MemoryStream()) { PacketBase.WriteBytes(ms, packet.GuidCode); PacketBase.WriteBytes(ms, DownloadInfoParam.Encode(packet.DownloadInfo)); PacketBase.WriteBytes(ms, packet.Name); PacketBase.WriteBytes(ms, packet.Quality); PacketBase.WriteBytes(ms, packet.Size); PacketBase.WriteBytes(ms, packet.IsLocalDownload); PacketBase.WriteBytes(ms, TimePeriodPacket.EncodeArray(packet.TimePeriodsAll)); PacketBase.WriteBytes(ms, TimePeriodPacket.EncodeArray(packet.TimePeriodsCompleted)); PacketBase.WriteBytes(ms, (int)packet.DownloadStatus); PacketBase.WriteBytes(ms, packet.ErrorInfo); PacketBase.WriteBytes(ms, packet.UpdatedLastestTime); PacketBase.WriteBytes(ms, packet.Speed); return(ms.ToArray()); } }