无法将MemoryStream参数传递给WCF方法?

时间:2014-01-09 13:08:28

标签: c# asp.net .net wcf silverlight

我在Service1.svc.cs中有一个方法,下面是代码

public void SaveData(int UserId, System.IO.MemoryStream File)
{
   //Some code
}

我从xaml.cs传递值

savedata.SaveDataAsync(userId, ms);

错误是

  

无法从'System.IO.MemoryStream'转换为   'SignSilverlight.ServiceReference1.MemoryStream'

如何解决?

1 个答案:

答案 0 :(得分:6)

内存流是一个.NET本地对象,无法将其传递给甚至可能无法运行.NET的远程计算机。

您必须传递byte []数组。但请注意端点设置中的大小限制。

以下是如何(de)将内存流序列化为数组

 // first endpoint
 var streamSending = new MemoryStream();
 var array = streamSending.ToArray();

 // second endpoint
 var streamRecieving = new MemoryStream(array);