来自MSDN:
实现这个接口有两个原因。第一个是控制 XmlSerializer 如何对对象进行序列化或反序列化。例如,您可以将数据分块为字节而不是缓冲大型数据集,并且还可以避免使用 Base64 编码对数据进行编码时发生的膨胀。
实施 IXmlSerializable 如何让我避免 base64 的大小膨胀?
我的意思是,假设我已经实现了 IXmlSerializable,并且我想将一个字节数组写入 XmlWriter。据我所知,最不膨胀的方法是 XmlWriter.WriteBase64 - 因为我不能直接写入数据 - 它会包含 XML 中无效的字节。