// Churn through the byte stream just to extract the XML internal static string ReadNextSurrogateXml(GZipStream stream, UnicodeEncoding encoder) { var temp = new byte[16]; if (stream.Read(temp, 0, 16) <= 0) return null; var guid = new Guid(temp); string className = encoder.GetString(stream.ReadBytes(stream.ReadInt())); byte[] xmldata = stream.ReadBytes(stream.ReadInt()); long id = stream.ReadLong(); return UnicodeEncoding.UTF8.GetString(xmldata); }