我有一个WCF服务,其传输模式设置为Streamed。该服务需要接受流。
我的客户端是Compact Framework 3.5。在客户端我有一个包含大数据的列表对象。我想序列化这个对象流并将其发送到WCF服务,我将在其中反序列化它。
由于Compact Framework中的序列化选项有限,这已成为一项使命。
目前我有以下序列化:
ServiceClient sc = new ServiceClient(CommonClient.MyDefaultBinding(), CommonClient.MyEndpointAddress);
MemoryStream s = new MemoryStream();
XmlSerializer serializer = new XmlSerializer(typeof(ScannerService.AscAssetCaptureCollection));
serializer.Serialize(s, serverCollection);
OnComplete(sc.Send((Stream)s));
这不起作用。我尝试发送时遇到的错误是:
不期望System.IO.MemoryStream类型。使用XmlInclude或SoapInclude>属性指定静态未知的类型。
有谁知道我怎么能实现这个目标?
答案 0 :(得分:0)
没有来自.NET CF的流媒体。由于内存限制,.NET CF / WIN CE的WCF版本具有显着缩写的工具集。在您的情况下,从.NET CF设备上传文件的唯一选择是缓冲,尽管CF可能能够接收流(不确定。我从未尝试过。)您也受到限制,在您的绑定选项和加密 - SSL不会工作,只有邮件加密。
这是指向.NET 3.5 CF中可用功能子集的链接
http://blogs.msdn.com/b/andrewarnottms/archive/2007/08/21/the-wcf-subset-supported-by-netcf.aspx
祝你好运......我能够将文件上传/下载到CF,但这并不容易。