WCF事件顺序

时间:2011-08-30 15:01:07

标签: c# wcf deserialization

我需要在WCF中以略微不同寻常的方式挂钩事件。

我正在将模型从客户端传递到服务器,我需要访问该模型:

  1. 模型创建后
  2. 在将传入数据实际反序列化为该模型之前
  3. 原因是我实际上有条件的反序列​​化事件,理想情况下我希望该条件本身是对象的属性;因此,我有这样的模式:

      

    create object-> set property->反序列化基于对象的其余部分   在那个属性

    WCF中是否有可以挂钩的事件?我有一个属性设置挂钩到“IOperationBehavior”和“IParameterInspector”设置,但那些(据我所知)不具有挂钩在创建和反序列化事件之间的动作。

    或者,如果我可以保证它将是第一个反序列化的属性,那么我可以通过一种方式修改传输中的数据并明确地将该属性添加到传入数据中。

    有什么想法吗?

    [编辑] 请注意,我在这里使用JSON作为数据传输,而不是真正对最终解决方案产生影响。

1 个答案:

答案 0 :(得分:1)

理论上你可以实现一个嵌套的包络,传递给你的WCF服务的实际数据包含一个类(包络),它包含确定如何反序列化所需的数据,以及一个包含实际数据的字节数组。序列化格式。然后,您可以手动管理字节数组的反序列化。

似乎可能有更好的方法,但我做过类似的事情而且工作正常。

编辑:也许IDispatchMessageInspector是正确的挂钩地点?