У меня есть веб-сервис, который возвращает двоичный массив объекта. Существует ли более легкий способ передать это с SOAP, или он должен содержаться в XML? Это работает, но я должен был увеличить отправление и получить буфер к большому значению. Сколько слишком много?
При передаче двоичного файла в XML, поскольку массив кажется действительно неэффективным, но я не вижу способа прикрепить двоичное вложение с помощью.NET.
В виде массива? Вы имеете в виду, что отправляете
<byte>8</byte>
<byte>127</byte>
и т. Д.? Если это так, то вы, безусловно, можете улучшить его, предварительно преобразовав массив байтов в шестнадцатеричную строку, например.
<codedArray>087F09AFBD.....</codedArray>
Это наиболее распространенный подход для отправки изображений и т. Д. Через SOAP. Однако даже тогда вы правы, сомневаясь в этом. Вам действительно стоит посмотреть на другие, более RESTful протоколы передачи, ИМХО.
На самом деле вам не следует отправлять двоичную информацию с помощью веб-службы. Это как бы сводит на нет смысл использования веб-сервиса, совместимости. В идеале вы должны сериализовать свой объект как xml. Однако, если вы отправляете информацию, которая по своей сути является двоичной, например изображение, вы наверняка можете поместить ее в полезную нагрузку вашего сообщения SOAP. Объем информации на самом деле зависит от того, как долго вы хотите ждать и насколько быстро работает ваша сеть. Я не верю, что существует какое-либо фактическое ограничение на размер информации, которую вы можете отправить. Если это действительно много (50 мегабайт + кажется произвольно большим числом), вы можете рассмотреть альтернативные транспортные протоколы, такие как потоковая передача через сокет.