在序列化wcf之前注入

时间:2011-09-26 11:17:27

标签: wcf

我想使用IDispatchMessageInspector和BeforeSendReply方法在返回客户端之前更改重放,但为时已晚,导致消息被序列化。

这是另一种改变服务返回但未序列化的数据的wcf接口或其他方式吗?

我希望使用服务返回的数据生成新数据,并在接受类型为text / html时进行自己的序列化

1 个答案:

答案 0 :(得分:1)

在返回对象和传出消息之间进行转换的组件是IDispatchMessageFormatter。内容协商(根据传入的Accept标题更改响应格式)在“经典”WCF中是可行的,但是您需要编写自己的格式化程序来处理它 - 对于传入的请求它会检查什么是接受标头并将其存储在某处(例如操作上下文),并且在传出响应时,它将获得该标头的值并决定如何格式化传出响应。

然而,使用WCF Web API,内容协商要容易得多,而且确实有很多样本可以做到这一点。在http://wcf.codeplex.com处查看 - Content Manager示例具有一些内容协商功能。