通过WCF的无限二进制流

时间:2017-10-20 17:43:05

标签: c# .net wcf streaming

我一直在网上搜索各种WCF书籍而没有找到答案 - 所以现在我在这里试试运气。

我正在创建一个,replace (replace("'<feet>'" "'<inches>'", "'<feet>'", height / 12), "'<inches>'", height % 12) AS playerHeight 服务,向其他利益相关者公开了许多方法。其中一种方法是连续的实时数据流,它将通过MessagePack进行序列化(参见下面的示例)。

WCF

我的问题是[ServiceContract] public interface IMyHappyStreamingService { [OperationContract] Stream GetLiveDataOfDataPoints(string query); } 产生了一个可能无限的DataPointStorage.GetDataPoints()流,应该将其推入输出流而不进行缓冲。但是怎么样?请参阅下面的虚拟代码。

DataPoints

如何将可能的无限流(public class MyHappyStreamingService : IMyHappyStreamingService { public Stream GetLiveDataOfDataPoints(string query) { foreach (DataPoint dataPoint in DataPointStorage.GetDataPoints()) { // Push dataPoint into output stream } /* Return some output stream */ } } )映射到WCF中的IEnumerable?如果我遗漏了某些东西或做了一些完全错误的事情,请纠正我:)

1 个答案:

答案 0 :(得分:0)

我最终使用了这个例子:http://ryandavis.io/a-lazily-evaluated-stream-wrapper-for-ienumerable/解决了我的问题。