带有 Json.Net 格式化程序的 ChannelFactory
Posted
技术标签:
【中文标题】带有 Json.Net 格式化程序的 ChannelFactory【英文标题】:ChannelFactory with Json.Net formatter 【发布时间】: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 【参考方案1】:也可以使用列表: http://pastebin.com/UU05tNRj
DateTime 值转换为 LocalDateTime。 问题结束:)
【讨论】:
以上是关于带有 Json.Net 格式化程序的 ChannelFactory的主要内容,如果未能解决你的问题,请参考以下文章
带有协议缓冲区的 ASP.NET WebApi - 错误处理
尝试使用 JSON.NET 反序列化带有 [] 字符的 JSON
带有JSONPath的JSON.NET SelectToken
使用带有 LINQ 的 JSON.NET 计算我的 JSON 文件中的子项数
带有JsonIgnoreAttribute的属性的Json.NET JsonSerializationException