Как выделить пользовательские объекты в поток (WCF HttpBinding - TransferMode = Streamed) - PullRequest
0 голосов
/ 18 августа 2011

Я хотел бы знать, как сериализовать пользовательские объекты в поток и отправить поток через службу WCF.Я думаю использовать XMLSerializer и сериализовать объекты в MemoryStream и передать его параметру типа Stream метода OperationContract от клиента, и когда запрос будет получен от службы, поток будет десериализован обратно в объекты.

Ваше предложение будет высоко оценено!

Ответы [ 2 ]

0 голосов
/ 16 января 2012

Посмотрите здесь,Сериализация и потоковая передача больших пользовательских объектов:http://weblogs.asp.net/cibrax/archive/2008/06/10/streaming-large-content-with-wcf-and-deferred-execution.aspx

0 голосов
/ 18 августа 2011

В потоковом режиме его следует использовать, когда вы хотите передавать большие данные.Режим потоковой передачи может добавить некоторые накладные расходы на транспортном уровне.Также вы автоматически теряете сериализацию, предоставленную WCF.

ОБНОВЛЕНИЕ XmlSerializer не подходит для больших данных, поскольку использует DOM.DOM-парсер загружает весь XML-контент в память, и вы потеряете преимущества потоковой передачи (генерирование / использование чанка по частям).Бинарная или пользовательская сериализация должна быть вашим способом.Также не забудьте применить сжатие (подробнее http://social.msdn.microsoft.com/Forums/en-US/dataservices/thread/12557249-2775-44e4-bc39-49585cf15873/)

...