MSDNから:
このインターフェイスを実装する理由は 2 つあります。1 つ目は、オブジェクトが XmlSerializer によってシリアル化または逆シリアル化される方法を制御することです。たとえば、大きなデータ セットをバッファリングする代わりに、データをバイトにチャンクできます。また、Base64 エンコーディングを使用してデータをエンコードするときに発生するインフレーションも回避できます。
IXmlSerializable を実装すると、base64 のサイズの膨張をどのように回避できますか?
つまり、IXmlSerializable を実装し、バイト配列を XmlWriter に書き込みたいとします。私が知る限り、それを行うための最もインフレの少ない方法はXmlWriter.WriteBase64です-データを直接書き込むことができないため-XMLでは無効なバイトが含まれます。