Nein, tut es nicht, aber...
Ich habe gerade GZipStream-Unterstützung für meine Anwendung heute hinzugefügt, so kann ich einige Code hier teilen;
Serialisierung:
using (Stream s = File.Create(PathName))
{
RijndaelManaged rm = new RijndaelManaged();
rm.Key = CryptoKey;
rm.IV = CryptoIV;
using (CryptoStream cs = new CryptoStream(s, rm.CreateEncryptor(), CryptoStreamMode.Write))
{
using (GZipStream gs = new GZipStream(cs, CompressionMode.Compress))
{
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(gs, _instance);
}
}
}
Deserialisierung:
using (Stream s = File.OpenRead(PathName))
{
RijndaelManaged rm = new RijndaelManaged();
rm.Key = CryptoKey;
rm.IV = CryptoIV;
using (CryptoStream cs = new CryptoStream(s, rm.CreateDecryptor(), CryptoStreamMode.Read))
{
using (GZipStream gs = new GZipStream(cs, CompressionMode.Decompress))
{
BinaryFormatter bf = new BinaryFormatter();
_instance = (Storage)bf.Deserialize(gs);
}
}
}
HINWEIS: Wenn Sie CryptoStream verwenden, ist es wichtig, dass Sie das (Ent-)Zippen und (Ent-)Verschlüsseln auf diese Weise richtig verketten, denn Sie wollen Ihre Entropie verlieren, BEVOR die Verschlüsselung Rauschen in Ihren Daten erzeugt.