2010-09-20 4 views
4

Мне нужно понять, как работает WCF при отправке сообщения. Разделяет ли WCF все перед отправкой?WCF: Сериализация? Streaming?

Мой другой вопрос - какой из преимуществ использования Streaming? Это лучше для больших сообщений, скажем между 1Mb до 2Mb? Могу ли я отправить сложный объект, сериализованный, а затем легко десериализовать его на другой стороне после потоковой передачи (сложным объектом я называю список изображений, который может быть динамическим), или мне нужно отформатировать его с помощью чего-то вроде XML?

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

Я знаю, очень общий, но мне нужно прояснить эти понятия.

Приветствия

ответ

0
  1. Да, кроме потоков.
  2. Потоковая передача позволяет реализовать то, что обычно было бы трудным или невозможным. Например, если вы попытаетесь отправить 500 МБ, используя привязку HTTP, это было бы невозможно. Но с помощью потоковой передачи вы получаете указатель на поток, и вы можете читать из потока.
  3. Кажется, что вы имеете в виду буферизированный подход, а не потоковое. Да, вы можете настроить его на буферизацию и предпочитаете большие сообщения.
  4. Да, вы можете передать буфер, а затем использовать свою сериализацию для десериализации.
  5. В потоковом режиме вы отправляете поток и разрешаете другой стороне читать его, не требуется сериализация. Например:

    интерфейс IMyService { Stream GetMyFile (Guid fileId); }

и

class MyService : IMyService 
{ 
    Stream GetMyFile(Guid fileId) 

    { 
     return new FileStream(GetFileNameFromId(fileId), ...);  
    } 

} 
Смежные вопросы