Я использовал GZipStream для сжатия вывода из .NET XmlSerializer, и он прекрасно работал для распаковки результата с помощью gunzip (в cygwin), winzip и другого GZipStream.
Для справки, вот что я сделал в коде:
FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write);
using (GZipStream gzStream = new GZipStream(fs, CompressionMode.Compress))
{
XmlSerializer serializer = new XmlSerializer(typeof(MyDataType));
serializer.Serialize(gzStream, myData);
}
Затем распаковать в c #
FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read);
using (Stream input = new GZipStream(fs, CompressionMode.Decompress))
{
XmlSerializer serializer = new XmlSerializer(typeof(MyDataType));
myData = (MyDataType) serializer.Deserialize(input);
}
Использование утилиты 'file' в cygwin показывает, что действительно существует разница между одним и тем же файлом, сжатым с помощью GZipStream и с GNU GZip (возможно, информация заголовка, как другие указали в этой теме) Однако на практике это различие, по-видимому, не имеет значения.