设置BinaryFormatter.TypeFormat似乎没有任何效果

时间:2014-01-03 01:31:04

标签: c# serialization mono binaryformatter

所以我正在序列化一些内容,我注意到在BinaryFormatter文档中,它提到您可以通过将TypeFormat属性设置为FormatterTypeStyle.TypesWhenNeeded来提高性能并减小文件大小,或FormatterTypeStyle.XsdString

我已经尝试了两种 - 并且将它们组合在一起 - 但是我生成的文件的大小仍然固执地相同。偷看内容,我注意到了很多类型的字符串。 (在任何人询问之前,所有这些属性都设置为FormatterTypeStyle.TypesAlways

我正在使用有效支持.NET 3.5的Mono版本。这可能与此有关,但我想确认没有其他我错过的东西

提前感谢您提供任何帮助

1 个答案:

答案 0 :(得分:0)

我做了类似的事情,比如将文本缓冲区发送到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;
}

希望这有帮助。