【问题标题】:Unable to pass MemoryStream parameter to WCF method?无法将 MemoryStream 参数传递给 WCF 方法?
【发布时间】:2014-01-28 01:27:31
【问题描述】:

我在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'

如何解决?

【问题讨论】:

  • 将System.IO更改为SignSilverlight.ServiceReference1
  • 无法将 SignSilverlight.ServiceReference 命名空间添加到文件中,错误在 'savedata.SaveDataAsync(userId , ms);' ms 在红线中,它希望 ms 作为 SignSilverlight.ServiceReference.MemoryStream
  • 你能提供更多的代码吗?

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


【解决方案1】:

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

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

这里是如何将内存流(反)序列化为数组

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    • 2015-04-18
    • 2011-07-23
    • 2017-01-05
    • 2013-10-04
    • 2013-05-19
    相关资源
    最近更新 更多