2010-09-20 71 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), ...);  
    } 

}