using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Runtime.Serialization; namespace CommonUtils { public static class CompressedSerializer { /// /// Decompresses the specified compressed data. /// /// /// The compressed data. /// public static T Decompress(byte[] compressedData) where T : class { T result = null; using (MemoryStream memory = new MemoryStream()) { DataContractSerializer ser = new DataContractSerializer(typeof(T)); byte[] outArray = Cellbi.SvZLib.Utils.Decompress(compressedData); memory.Write(outArray, 0, outArray.Length); memory.Position = 0; result = ser.ReadObject(memory) as T; } return result; } /// /// Compresses the specified data. /// /// /// The data. /// public static byte[] Compress(T data) { byte[] result = null; using (MemoryStream memory = new MemoryStream()) { DataContractSerializer ser = new DataContractSerializer(typeof(T)); ser.WriteObject(memory, data); byte[] array = memory.ToArray(); result = Cellbi.SvZLib.Utils.Compress(array); } return result; } } }