Возврат байта [] в службу WCF - PullRequest
6 голосов
/ 21 мая 2010

Рекомендуется ли возвращать байт [] в службе WCF, который будет вызываться многими приложениями

ниже указан код

public byte[] GetDoc(string docParam)
{
    byte[] doc;
    doc = GenerateDoc(docParam);
}

Спасибо

Ответы [ 3 ]

2 голосов
/ 21 мая 2010

Хорошей практикой является разделение общего кода на удобный метод, чтобы многие вызывающие абоненты могли вызывать этот удобный метод.Это независимо от типа возвращаемого значения.Если вызывающим абонентам потребуется манипулировать byte[], тогда это может стать удобным и устранить избыточный код.

Кстати, в отношении кода, который вы разместили, это настоящий код или просто пример?Если это реальный код:

  1. Он не скомпилируется, потому что он не возвращает byte[].
  2. Если бы вы вызывали return doc; в качестве последней строки,почему GenerateDoc() внутри GetDoc()?GetDoc() на самом деле не дает никакой реальной выгоды.
2 голосов
/ 21 мая 2010

Определенно возможно вернуть byte[], и WCF позволяет вам сделать это с использованием кодировки MTOM.

Если размер двоичного буфера велик, вы можете использовать WCF streaming . В этом случае вы должны вернуть Stream тип данных и прочитать из этого Stream на стороне клиента.

0 голосов
/ 21 мая 2010

Используется, когда вы хотите передать двоичный буфер, а также выполнить передачу больших данных, используя кодировку MTOM (устанавливается в конфигурации Binding). Как выполнить передачу больших данных можно найти здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...