【发布时间】:2013-11-07 16:22:27
【问题描述】:
我设置了一个 web api rest 服务,可以使用 httpclient + json.net 格式化程序来使用它,没有任何问题。 但我想用通道工厂实现这种用法,并用 json.net 格式化程序替换默认的 json 序列化程序(不改变服务中的任何内容)。 我见过两个例子(都基于相同的代码): https://github.com/carlosfigueira/WCFSamples/tree/master/MessageFormatter/MessageFormatter/JsonNetMessageFormatter 但他们正在做的是改变服务部分以不同的方式返回数据。 如果我能以某种方式获取响应的 RAW 正文数据,则可以轻松解决这里的问题。 上面粘贴的示例使用在 IClientMessageFormatter 的 DeserializeReply 函数中接收的 XmlDictionaryReader 获取 json 数据。 Json.Net 不支持来自 XmlDictionaryReader 的反序列化,所以我猜这个数据必须在堆栈中更高的位置接收/反序列化。 或者也许这里有人知道在 DeserializeReply 函数中获取原始正文数据(json 字符串...)的方法?
问题仅在于回复的反序列化。发送作品没有问题(SerializeRequest)
有人成功解决了这个问题吗?
【问题讨论】:
-
工作正在进行中,但它已经在使用 simpleobjects。还没有用包含列表的对象对其进行测试......而且那里有很多垃圾代码,但至少我把我的对象拿回来了 :) pastebin.com/kAWm7yDG
标签: c# asp.net json.net wcf-web-api channelfactory