2017-10-20 181 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

回答