Как IXmlSerializable позволяет мне избежать инфляции размера base64? - PullRequest
0 голосов
/ 21 сентября 2010

С MSDN :

Есть две причины для реализации этого интерфейса. Во-первых, это управление тем, как ваш объект сериализуется или десериализуется с помощью XmlSerializer. Например, вы можете разбивать данные на байты вместо буферизации больших наборов данных, а также избегать инфляции, возникающей при кодировании данных с использованием кодировки Base64.

Как реализация IXmlSerializable позволяет мне избежать инфляции размера base64?

Я имею в виду, представьте, что я реализовал IXmlSerializable, и я хочу записать байтовый массив в XmlWriter. Насколько мне известно, наименее раздувающий способ сделать это - XmlWriter.WriteBase64 - поскольку я не могу записать данные напрямую - он будет содержать недействительные байты в XML.

1 Ответ

1 голос
/ 21 сентября 2010

Да, base64 не очень эффективен. Здесь предполагается, что вы сами можете кодировать байт [] и сэкономить место. Может быть, длина кодировки. Может быть, вы можете сжать массив и Base64 кодировать сжатые данные. Нечто подобное.

...