public void Decode(string filePath) { DataContractSerializer cellSerializer = new DataContractSerializer(typeof(List <OctreeEntry <Brick> >)); FileStream fileStream = File.Open(filePath, FileMode.Open); byte[] bytes = new byte[fileStream.Length]; fileStream.Read(bytes, 0, (int)fileStream.Length); fileStream.Close(); using (var msi = new MemoryStream(bytes)) using (var mso = new MemoryStream()) { using (var gs = new GZipStream(msi, CompressionMode.Decompress)) { //gs.CopyTo(mso); CompressionUtil.CopyTo(gs, mso); mso.Seek(0, SeekOrigin.Begin); List <OctreeEntry <Brick> > cell = (List <OctreeEntry <Brick> >)cellSerializer.ReadObject(mso); } } }