2010-09-20 74 views
4

我需要了解WCF如何在發送消息時工作。 WCF在發送之前序列化所有內容嗎?WCF:序列化?流?

我的另一個問題是使用Streaming會有哪些好處?對於更大的消息是更好的,可以說1Mb到2Mb之間?我可以發送一個複雜的對象序列化,然後能夠很容易地反序列化它在對方流(複雜的對象,我的意思是可以動態的圖像列表),還是我需要使用類似XML的格式?

這裏的主要問題是,我不知道在使用WFC流時,我需要在發送消息之前先序列化消息...是不是WFC應該在發送消息之前序列化所有消息?

我知道很普遍,但我需要澄清這些概念。

乾杯

回答

0
  1. 是,除了流。
  2. 流式傳輸允許您執行通常很困難或不可能的事情。例如,如果您嘗試使用HTTP綁定發送500MB,則這是不可能的。但是使用流媒體,你會得到一個指向流的指針,你可以從流中讀取。
  3. 看來你是指Buffered方法而不是流式方法。是的,您可以將其設置爲緩衝並且適用於大型郵件。
  4. 是的,你可以流緩衝區,然後使用自己的序列化去反序列化。
  5. 在流式傳輸中,您發送一個流並允許另一側從中讀取,不需要序列化。例如:

    接口IMyService Stream GetMyFile(Guid fileId); }

class MyService : IMyService 
{ 
    Stream GetMyFile(Guid fileId) 

    { 
     return new FileStream(GetFileNameFromId(fileId), ...);  
    } 

}