/// <summary> /// Сериализует тукущий объект. (в слудующих версиях возможно внесу в сам класс) /// </summary> /// <param name="currentPacket"></param> private void SerializeMyPacket(MyPacketWrapper currentPacket) { //Можно реализовать сжатие данных. В это случае придется "разжимать" данные на другой стороне //GZipStream zip = new GZipStream(ms, CompressionMode.Compress); //byte[] buffer = new byte[list.Capacity]; //zip.Write(buffer, 0, buffer.Length); MemoryStream ms = new MemoryStream(); BinaryFormatter serializer = new BinaryFormatter(); serializer.Serialize(ms, currentPacket); packetSerialize = ms.ToArray(); ms.Close(); WriteStatus("Serialization completed, size:" + packetSerialize.Length); }
/// <summary> /// Подготавливает данные для отпавки. Результат - byte[] packetSerialize /// </summary> /// <param name="user">Объект с информацией о пользователе</param> /// <param name="pathToFile">Путь к файлу в формате :</param> private void PrepareData(UserInfo user, string pathToFile) { MyPacketWrapper myPacket = new MyPacketWrapper(); { try { myPacket.FileBuff = File.ReadAllBytes(pathToFile); myPacket.FileName = System.IO.Path.GetFileName(pathToFile);; myPacket.UserDetails = user; SerializeMyPacket(myPacket); } catch (FileNotFoundException exc) { MessageBox.Show(exc.Message); } catch (Exception exc) { MessageBox.Show(exc.Message); } } }
/// <summary> /// Подготавливает данные для отпавки. Результат - byte[] packetSerialize /// </summary> /// <param name="user">Объект с информацией о пользователе</param> /// <param name="pathToFile">Путь к файлу в формате :</param> private void PrepareData(UserInfo user, string pathToFile) { MyPacketWrapper myPacket = new MyPacketWrapper(); { try { myPacket.FileBuff = File.ReadAllBytes(pathToFile); myPacket.FileName = System.IO.Path.GetFileName(pathToFile); ; myPacket.UserDetails = user; SerializeMyPacket(myPacket); } catch (FileNotFoundException exc) { MessageBox.Show(exc.Message); } catch (Exception exc) { MessageBox.Show(exc.Message); } } }