2011-08-30 48 views
4

我需要在WCF中以稍微不寻常的方式挂入事件。WCF事件订单

我传递的模型从客户机到服务器,我需要访问模式:

  1. 模型已经建立
  2. 后传入的数据实际上已前反序列化到模型

的原因是我确实有这是有条件的,最好我想这个条件本身是对象上的属性反序列化事件;因此,我不得不模式:

创建对象 - >设置性财产>反序列化对财产

基于 对象的其余部分是否有WCF的事件,我可以挂钩为了这个?我已经设置了一个属性,可以挂钩到“IOperationBehavior”和“IParameterInspector”的设置中,但这些属性没有(据我所知)在创建和反序列化事件之间插入了一个动作。

或者,如果我能保证它是第一个反序列化的属性,我会很好的修改数据传入的数据并明确地将该属性添加到传入数据中。

任何想法?

[编辑] 小问题,我在这里使用JSON作为数据传输,而不是那应该对最终解决方案真的有影响。

回答

1

理论上你可以实现一个嵌套信封,其中传递给你的WCF服务的实际数据由一个类(信封)组成,该类包含确定如何反序列化所需的数据和一个由真实数据组成的字节数组一个序列化的格式。然后你可以手动管理字节数组的反序列化。

似乎有可能是一种更好的方式,但我做了类似的事情,他们的工作。

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

+0

是的,我正在考虑添加一个包装层,但它似乎是这样一个黑客... – jvenema

+0

这看起来很有趣...我可以预先解析它,添加我的属性,然后重新序列化它.. 。 – jvenema