如何拦截WCF中的反序列化后请求对象

时间:2011-06-28 20:04:59

标签: wcf request interceptor

我需要拦截所有Web服务的WCF请求。所有服务都遵循严格的模型,其中操作必须从我们的基本请求类型扩展单个请求。该基本请求类型包含我们需要各种系统级支持的属性,自定义日志记录是一个,但还有许多其他。我希望使用IDispatchMessageInspector,但我不知道如何从“消息”中获取请求对象,而无需从正文中重新创建副本。我需要这个是高效的,所以每个请求创建两个副本不会削减它。

我知道我可以使用System.Reflection.Emit创建代理,但这会与服务激活和工厂混淆......我希望有更容易获得的东西,比如CXF拦截器为Java工作的方式。 / p>

我是否可以在调度到服务impl之前拦截服务器中的实际单个请求实例?

1 个答案:

答案 0 :(得分:5)

消息检查器用于处理不带参数的消息。要使用反序列化对象,您需要参数检查器(实现IParameterInspector)。