2010-04-23 29 views
1

在开发传输大的数据作为方法PARAMS(> 4 MB原料的尺寸,不考虑转移/消息开销)的WCF服务我所面临的问题。WCF分块/流 - 使它透明客户端

此问题的解决方案是使用分块或流式传输,但我所见过的所有样本都假设客户端知道使用的方法并使用可用块大小发送/接收部分数据,并且问题(对于我)是它不可能调用只有一个方法,像

SaveData(DataInformation info) 

但写的包装方法,它将代替迭代水木清华像

SaveDataChunk(byte[] buffer) 

难道是不知何故透明的客户端,只调用“保存数据“?

编辑: 小笔额外的问题,但它可以去另外一个问题 如果我们使用WCF流那么的ServiceContract所有ServiceOperations必须履行addtional限制,比如“跨流传输发生的操作可以有至多合同一个输入或输出参数'?

如果服务需求流只有方法的一部分,你需要将它移到其他服务合同?是否有另一种方式来处理它?

由于

回答

0

组块或流是透明的它是在配置文件中设置的代码。

如果您使用的输入和输出数据传输对象,就像你DataInformation对象,你只能有一个参数。

您的byte []可能是DTO上的一个属性。

+1

代码示例可能很棒。一切我已经找到了使用流作为经营合同参数 喜欢这里 http://csharp-codesamples.com/2009/02/data-transfer-using-self-hosted-wcf-service/ 段落“的服务合约, DataUploader类“ – bybor 2010-04-29 11:29:20