因此,我正在序列化一些东西,并且我注意到在BinaryFormatter
文档中,它提到可以通过将TypeFormat
属性设置为FormatterTypeStyle.TypesWhenNeeded
或FormatterTypeStyle.XsdString
来提高性能并减小文件大小。
我已经尝试了这两种方法,也对它们进行了“或”运算,但是结果文件的大小却始终保持不变。偷看内容,我也注意到那里有很多类型字符串。 (在任何人询问之前,在将所有属性设置为FormatterTypeStyle.TypesAlways
之前)
我正在使用有效支持.NET 3.5的Mono版本。可能与此有关,但我想确认没有其他我想念的东西
预先感谢您的任何帮助
最佳答案
我做过类似的事情,例如,将文本缓冲区发送到firebird blob到缓冲区序列化器:
protected Gtk.TextBuffer deserealizar (byte[] datos,TextBuffer txtBuffer)
{
Atom serialFormat = txtBuffer.RegisterDeserializeTagset(null);
ulong datostamano = (ulong) datos.LongLength;
TextIter start = txtBuffer.StartIter;
txtBuffer.Deserialize(txtBuffer, serialFormat, ref start, datos, datostamano);
return txtBuffer;
}
protected byte[] serializar(TextBuffer buffer)
{
TextIter inicio, final;
buffer.GetBounds(out inicio, out final);
Atom serialFormat = buffer.RegisterDeserializeTagset(null);
byte[] datos = buffer.Serialize(buffer, serialFormat, inicio, final);
return datos;
}
希望这可以帮助。