2017-10-20 262 views
0

我一直在寻找网络,看着各种WCF书籍而没有找到答案 - 所以现在我在这里尝试我的运气。通过WCF无限制二进制流

我正在创建一个WCF服务,该服务向其他利益相关者公开了一些方法。其中一种方法是连续的实时数据流,它将通过MessagePack序列化(请参见下面的示例)。

[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 */ 
    } 
} 

我该如何映射可能无限流(IEnumerable)在WCF一个Stream?如果我错过了某些东西或者做了一些完全错误的事情,请纠正我:)

+0

也许这有助于https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/large-data-and-streaming – Homerothompson

+0

@gnsanty:谢谢,但已经:) – SOK

回答