using System.IO.Compression;
public static void Main()
string data = "Hello World!";
Console.WriteLine( Compression.CompressData(data, CompressionLevel.Fastest) );
Console.WriteLine( Compression.CompressData(data, CompressionLevel.NoCompression) );
Console.WriteLine( Compression.CompressData(data, CompressionLevel.Optimal) );
private const int CompressedMessageHeaderLength = 0;
public static string CompressData(string data, CompressionLevel compressionLevel)
using (MemoryStream memoryStream = new MemoryStream())
byte[] plainBytes = Encoding.UTF8.GetBytes(data);
using (GZipStream zipStream = new GZipStream(memoryStream, compressionLevel, leaveOpen: true))
zipStream.Write(plainBytes, 0, plainBytes.Length);
memoryStream.Position = 0;
byte[] compressedBytes = new byte[memoryStream.Length + CompressedMessageHeaderLength];
BitConverter.GetBytes(plainBytes.Length),
CompressedMessageHeaderLength
memoryStream.Read(compressedBytes, CompressedMessageHeaderLength, (int)memoryStream.Length);
string compressedXml = Convert.ToBase64String(compressedBytes);