我目前正在将类保存UsageData
到字节数组并将其存储在硬件密钥上。该硬件密钥为用户数据保留了最多 256 个字节。目前,我填充的属性类的大小约为 640 字节,已经压缩。现在我去创建一个UsageDataTemp
没有任何属性/字段的临时类。我运行一个测试来查看没有任何值的字节数组有多大,它已经有 220 个字节的大小,只剩下 36 个字节要填充。
[Serializable]
public class UsageDataTemp
{
public byte[] ToByteArray()
{
var formatter = new BinaryFormatter();
using (var stream = new MemoryStream())
{
//original serialization is 684 bytes long, compress it with the gzipstream
using (var compressionStream = new GZipStream(stream, CompressionMode.Compress))
{
formatter.Serialize(compressionStream, this);
compressionStream.Flush();
return stream.ToArray();
}
}
}
}
为什么没有任何值的空类已经需要 220 个字节来保存自己。有没有办法进一步压缩字节数组。还是我需要开始自己制作BinaryFormatter
.