2010-05-25 3 views
0

Я получил ASMX с помощью методаИзменение пространства имен потока

[Webmethod] 
public Ssytem.IO.Stream GetStream(string path) 
{ 
... 
} 

и приложения WinForms, который имеет webreference для данного веб-сервиса.

Я не могу сделать что-то в моем приложении WinForms, как-то:

var myStream= (System.IO.Stream)client.GetStream(path); 

, потому что я

Cannot cast expression "MyWinformsApp.MyService.Stream" to Stream. 

Почему?

+0

можете ли вы разместить сообщение на дополнительной странице asmx? потому что кажется, что подпись GetStream возвращает MyWinformsApp.MyService.Stream вместо Sytem.IO.Stream, который вы опубликовали. – RvdK

ответ

1

Вы не можете вернуть поток через WebMethod. Если вы хотите вернуть данные в файл, существует ряд опций, но наиболее вероятным является, вероятно, следующее:

  • Прочитать содержимое файла и base64 его кодировать.
  • Возвращает кодированные данные base64.
  • На стороне клиента декодировать данные и сохранять их обратно в файл.
0

Потому что ваш MyWinformsApp.MyService.Stream не происходит от System.IO.Stream?! Правильно запрещается бросать объект во что-то, чего нет.

+0

У меня нет класса Stream. Я использую этот веб-метод System.IO.Stream – user278618

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