Использовать байтовый массив. По протоколу SOAP этот байтовый массив будет автоматически сериализован с использованием кодировки base64. Ваш веб-сервис также будет более информативным, если вы используете байтовый массив. Представьте себе кого-то, кто хочет использовать ваш веб-сервис и смотрит на метод, подпись которого выглядит следующим образом:
string GetBinaryImageFromDatabase();
Он может задаться вопросом, почему этот метод возвращает строку и что я собираюсь делать с этой строкой, а если он возвращает байтовый массив, это гораздо яснее.
Я видел метод веб-службы, который выглядит так:
string SaveCustomer(string customer);
Угадайте, что это были за customer
и типы возврата: это был какой-то проприетарный XML. Нет абсолютно никакого смысла использовать SOAP, если люди изобретают протоколы поверх него.