0

MSDNから:

このインターフェイスを実装する理由は 2 つあります。1 つ目は、オブジェクトが XmlSerializer によってシリアル化または逆シリアル化される方法を制御することです。たとえば、大きなデータ セットをバッファリングする代わりに、データをバイトにチャンクできます。また、Base64 エンコーディングを使用してデータをエンコードするときに発生するインフレーションも回避できます。

IXmlSerializable を実装すると、base64 のサイズの膨張をどのように回避できますか?

つまり、IXmlSerializable を実装し、バイト配列を XmlWriter に書き込みたいとします。私が知る限り、それを行うための最もインフレの少ない方法はXmlWriter.WriteBase64です-データを直接書き込むことができないため-XMLでは無効なバイトが含まれます。

4

1 に答える 1

1

はい、base64 はあまり効率的ではありません。ここでの前提は、byte[] を自分で別の方法でエンコードし、スペースを節約できるということです。多分ランレングスエンコーディング。おそらく、配列をgzipし、圧縮されたデータをbase64でエンコードできます。そんな感じ。

于 2010-09-21T11:54:47.020 に答える