我正在构建一个压缩 WCF 响应的自定义编码器。它基于 Microsoft 的 WCF 示例和这篇博文中的 Gzip 编码器:
http://frenk.wordpress.com/2009/12/04/gzip-compression-wcfsilverlight/
我已经完成了所有工作,但现在我只想在回复超出一定大小时应用压缩,但我不确定如何从编码器级别检索实际消息的总大小。
我需要在 EncoderFactory 中的 WriteMessage(...) 方法和 DispatchMessageInspector 中的 BeforeSendReply(...) 方法中获取消息大小,以便我知道是否压缩消息,以便我可以添加响应的“gzip” ContentEncoding 标头。请求总是很小并且没有被压缩,所以我不需要担心。
任何帮助表示赞赏。
乔恩。