如何在C#客户端中使用Stream而不是byte 和Java MTOM Web服务

我有一个使用CXF生成的java webservice,并启用了MTOM。

在java方面,我使用DataHandler而不是byte []来发送一个大文件。

如果我生成一个Java客户端,它工作正常,在客户端也声明DataHandler。

问题是当我尝试创建一个C#.net客户端时。

使用Visual Studio 2010生成客户端代码,它将字段声明为byte []而不是Stream。 这是一个问题,因为在客户端,它正在读取和分配所有数据以填充byte []。

看到一些MTOM和C#的例子,他们使用Strem而不是byte []。

如何生成客户端代码以在C#中使用Stream而不是byte []?

这是使用mtom的wsdl部分:

         

编辑:我遇到的问题是内存分配。 当用大文件读取大量记录或者用大文件读取记录时,客户端会抛出exception(由于内存分配)。

使用byte []调用web服务,客户端将所有数据加载到内存中,甚至在将结果提供给其余代码来处理它之前。 使用Stream时,我可以访问webservice的结果,并且可以将Stream的内容写入文件,而无需加载到内存中,从而避免内存不足问题。