Следует ли использовать кодировку Base64 или byte [] для возврата двоичных данных в веб-сервис .NET - PullRequest
8 голосов
/ 26 марта 2010

У меня простой вопрос. Должен ли я возвращать байтовый массив или просто base64-кодировать мои двоичные данные при представлении их через веб-сервис в .NET? Есть ли плюсы / минусы с любым методом, который в основном поддерживается и т. Д.

Ответы [ 2 ]

10 голосов
/ 26 марта 2010

Использовать байтовый массив. По протоколу SOAP этот байтовый массив будет автоматически сериализован с использованием кодировки base64. Ваш веб-сервис также будет более информативным, если вы используете байтовый массив. Представьте себе кого-то, кто хочет использовать ваш веб-сервис и смотрит на метод, подпись которого выглядит следующим образом:

string GetBinaryImageFromDatabase();

Он может задаться вопросом, почему этот метод возвращает строку и что я собираюсь делать с этой строкой, а если он возвращает байтовый массив, это гораздо яснее.

Я видел метод веб-службы, который выглядит так:

string SaveCustomer(string customer);

Угадайте, что это были за customer и типы возврата: это был какой-то проприетарный XML. Нет абсолютно никакого смысла использовать SOAP, если люди изобретают протоколы поверх него.

0 голосов
/ 26 марта 2010

Одним из соображений является то, что строка в кодировке Base64 позволяет использовать «Тестовую форму» для отладки любых проблем и т. Д. Массив байтов является сложным типом, поэтому тестовая форма не будет работать.

...