Невозможно привести объект типа «MessageBodyStream» к типу «System.IO.MemoryStream». - PullRequest
3 голосов
/ 14 мая 2011

Я возвращаю поток памяти в виде потока с моего wcf-сервера.Когда я получаю это в клиенте и возвращаю его обратно в MemoryStream, я получаю эту ошибку.

Я не понимаю, откуда пришло MessageBodyStream, поскольку я никогда не использовал его. Может кто-нибудь, пожалуйста, сообщите мне решение для этогопроблема?

Спасибо.

Ответы [ 3 ]

7 голосов
/ 14 мая 2011

Почему бы не использовать его как Stream вместо MemoryStream?

Возможно, вы захотите прочитать это сообщение в блоге, в котором конкретно упоминаетсяповедение, которое вы видите:

Например, если вы отправите MemoryStream, получатель получит его как класс System.ServiceModel.Dispatcher.StreamFormatter.MessageBodyStream (любой отправленный вами поток принимается как).

http://christopherdeweese.com/blog2/post/streaming-in-wcf-knowing-is-half-the-battle

Вот некоторая информация MSDN по теме: http://msdn.microsoft.com/en-us/library/ms733742.aspx

3 голосов
/ 14 мая 2011

Этот пост предполагает, что вам нужно сначала прочитать этот поток в MemoryStream, если вы хотите получить к нему доступ как MemoryStream.Потому что любой отправляемый вами поток принимается как MessageBodyStream .

2 голосов
/ 14 мая 2011

MessageBodyStream и MemoryStream являются несвязанными типами, вы не можете привести один к другому.Вероятно, вы должны просто использовать возвращенный объект как Stream.

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