我需要在 WCF 中以一种稍微不寻常的方式连接到一个事件。
我正在将模型从客户端传递到服务器,我需要访问该模型:
- 在创建模型之后但是
- 在传入数据实际反序列化为该模型之前
原因是我实际上有条件反序列化事件,理想情况下我希望该条件本身是对象的属性;因此,我有模式:
create object->set property->deserialize the rest of the object based on that property
WCF 中是否有我可以为此 Hook 的事件?我有一个属性设置 Hook 到“IOperationBehavior”和“IParameterInspector”设置,但那些(据我所知)没有在创建和反序列化事件之间 Hook 的操作。
或者,如果我可以保证它是第一个被反序列化的属性,我也可以通过一种方法来修改离线传入的数据并将该属性显式添加到传入数据中。
有什么想法吗?
[编辑] 小提示,我在这里使用 JSON 作为数据传输,并不是说这真的会对最终解决方案产生影响。
最佳答案
从理论上讲,您可以实现一个嵌套的信封,由此传递给您的 WCF 服务的实际数据由一个类(信封)组成,该类具有确定如何反序列化所需的数据,以及一个由真实数据组成的字节数组序列化格式。然后您可以手动管理字节数组的反序列化。
似乎有更好的方法,但我已经做过类似的事情并且它们有效。
编辑:可能是 IDispatchMessageInspector Hook 的地方合适吗?
关于c# - WCF 事件顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7245279/