2010-09-21 76 views
0

MSDNIXmlSerializable如何让我避免base64的尺寸膨胀?

实现此接口有两个原因。首先是控制你的对象如何被XmlSerializer序列化或反序列化。例如,您可以将数据分块为字节而不是缓冲大数据集,还可以避免数据使用Base64编码进行编码时发生的通货膨胀。

如何实现IXmlSerializable让我避免base64的大小膨胀?

我的意思是,想象我已经实现了IXmlSerializable,我想写一个字节数组到XmlWriter。做到这一点的最不充分的方法是XmlWriter.WriteBase64,据我所知 - 因为我不能直接写数据 - 它将包含XML中无效的字节。

回答

1

是的,base64效率不高。这里的假设是你可以用不同的方式自己编码byte []并节省空间。也许是一个游程编码。也许你可以gzip数组和base64编码压缩数据。类似的东西。

+0

没错。运行长度编码是我打算做的。但从MSDN的措辞来看,它们似乎意味着有一些直接的方式可以在没有base64编码的情况下编写这些字节。例如一些方法,如XmlWriter.WriteBytesUnencoded。因为他们说“*避免*通货膨胀”,你的方式更像是“放气,然后膨胀一点”。 – 2010-09-21 12:07:13