Должен ли я использовать кодировку Base64 или byte[] для возврата двоичных данных in.NET веб-служба

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

2 ответов


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

string GetBinaryImageFromDatabase();

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

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

string SaveCustomer(string customer);

думаю, что customer и возвращаемые типы были: они были некоторыми проприетарными XML. Нет абсолютно никакого смысла использовать мыло, если люди изобретают протоколы над ним.


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