2010-09-21 77 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