【发布时间】:2011-06-28 15:14:48
【问题描述】:
我正在尝试在 WCF 中实现一个安静的服务,但遇到的问题是该服务无法反序列化传递给它的 xml。它试图将根元素映射到操作合约而不是数据合约。例如,使用以下 XML 数据包,
<MyObject>
<MyField1>asdf</MyField1>
<MyField2>1234</MyField2>
...
</MyObject>
它无法将 MyObject 反序列化为输入消息,因为它需要该级别的操作合约。
我不想只使用所有字段作为操作合约的参数,因为 1) 参数会超过 5 个,以及 2) 它不会为扩展数据留出空间。
我设置了一个行为扩展来记录传入的请求。我应该只用根元素包装传入的消息以使其正确反序列化吗?或者有没有一种不那么老套的方法来完成这项工作——而不强迫客户改变实现?
谢谢
【问题讨论】:
-
您能否提供有关正在调用的异常/客户端及其实现方式的更多详细信息..
-
测试时我的客户是 Fiddler。 WcfTestClient.exe 清楚地缩进了操作的根元素,但客户端开发人员无法在我想要映射到我的数据合约的
<MyObject>周围提供根节点。