我一直在网上搜索各种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
?如果我遗漏了某些东西或做了一些完全错误的事情,请纠正我:)
答案 0 :(得分:0)
我最终使用了这个例子:http://ryandavis.io/a-lazily-evaluated-stream-wrapper-for-ienumerable/解决了我的问题。