【发布时间】:2011-08-18 08:55:36
【问题描述】:
我想知道如何将自定义对象序列化为流并通过 WCF 服务发送流。我正在考虑使用 XMLSerializer 并将对象序列化为 MemoryStream 并将其从客户端传递给 OperationContract 方法的 Stream 类型参数,当从服务接收到请求时,Stream 将被反序列化回对象。
您的建议将不胜感激!
【问题讨论】:
标签: c# asp.net wcf c#-3.0 wcf-binding
我想知道如何将自定义对象序列化为流并通过 WCF 服务发送流。我正在考虑使用 XMLSerializer 并将对象序列化为 MemoryStream 并将其从客户端传递给 OperationContract 方法的 Stream 类型参数,当从服务接收到请求时,Stream 将被反序列化回对象。
您的建议将不胜感激!
【问题讨论】:
标签: c# asp.net wcf c#-3.0 wcf-binding
当您想要传输大数据时应该使用它的 Streamed 模式。 Streamed 模式可能会在传输层上增加一些开销。 此外,您会丢失 WCF 提供的自动序列化。
更新 XmlSerializer 不适合大数据,因为它使用 DOM。 DOM 解析器将整个 xml 内容加载到内存中,您将失去流式传输的好处(逐块生成/消费块)。 二进制或自定义序列化应该是您的方式。 另外,不要忘记应用压缩(更多详情http://social.msdn.microsoft.com/Forums/en-US/dataservices/thread/12557249-2775-44e4-bc39-49585cf15873/)
【讨论】:
【讨论】: