发送流作为在Apache的节俭C#中的属性
问题描述:
我想消耗在旧货服务的流,例如,在服务的方法有一个流或作为参数类似的方法(例如,为了能够将IDataReader的结果序列化为流,然后反序列化对其他服务器端数据的引用)。发送流作为在Apache的节俭C#中的属性
我不认为这是明确的可能,但我不知道是否有另一种方式来实现类似的东西。
谢谢。
答
Apache thrift不支持发送流。你可以得到最接近的是发送一个字节数组。
为了实现流般的体验使用节俭,你可以创建一个返回流的字节数组的形式下一部分的接口。
在C#语法它看起来像传递到ReadNextBlock在每次调用
interface MyService
{
int OpenStream(string path);
byte[] ReadNextBlock(int openedStreamId, long maxBlockSize);
}
的OpenStream返回 “流ID”。在您的服务器端,您可以持有一个Dictionary(key - openStreamID,value - Stream),用于保持源流打开并从中读取下一个块。
您也可以创建客户端一个辅助类,这将是流后裔,并且使用的OpenStream和ReadNextBlock获取的实际数据。
的[如何流从Python来C++使用Apache节俭的图像](http://*.com/questions/26739520/how-to-stream-an-image-from-python-to-c可能重复-using-apache-thrift) – JensG 2015-01-04 17:54:13