Режим потоковой передачи WCF для порядковых данных

#c# #wcf

#c# #wcf

Вопрос:

Я хотел бы спросить, оказывает ли TransferMode = Streamed какое-либо влияние, если операция не возвращает или не принимает аргументы типа Stream?

Если да, то как клиент может начать обрабатывать, например, сериализованный класс XML, если он не доставлен полностью?

Ответ №1:

Что касается первого вопроса, я думаю, вам пригодился бы один из примеров CodeProject, который показывает, как реализовать потоковую передачу через WCF. Простое переключение TransferMode =Stream не приводит к возникновению потоковой передачи. Если у вас нет кода, написанного для потоковой передачи (в .NET, реализующего FileStream для отправки ваших данных), вы все равно будете буферизировать свои полезные данные из одного места в другое. Вот ссылка на относительно простую версию:http://bartwullems.blogspot.de/2011/01/streaming-files-over-wcf.html

Что касается ответа клиента, то, по моему опыту, клиент не начинает обработку потокового содержимого до тех пор, пока содержимое не будет доставлено полностью, поэтому нет никаких шансов, что вы обработаете наполовину заполненный XML-файл по ошибке.