【问题标题】:C# WCF REST - How do you use JSON.Net serializer instead of the default DataContractSerializer?C# WCF REST - 如何使用 JSON.Net 序列化程序而不是默认的 DataContractSerializer?
【发布时间】:2012-06-12 18:57:17
【问题描述】:

在 .NET 3.5 中,是否可以覆盖默认的 DataContractJsonSerializer 并改用 JSON.net 序列化器?

注意:我们不想在类上使用属性

【问题讨论】:

    标签: wcf rest .net-3.5 json.net


    【解决方案1】:

    是的,可以这样做。但这不是太简单。您将需要一个新的消息格式化程序,它使用 JSON.NET 序列化程序而不是默认的序列化程序在操作参数和 WCF 堆栈所需的消息对象之间进行转换。 http://blogs.msdn.com/b/carlosfigueira/archive/2011/05/03/wcf-extensibility-message-formatters.aspx 的帖子有一个例子。代码是为 4.0 编写的,但它也应该适用于 3.5。

    【讨论】:

    • 不错的文章,但是您将如何处理 XML 请求?
    • 是的,但您需要将 WebContentTypeMapper 实现更改为只为 JSON 请求返回“原始”。然后将格式化程序更改为首先检查请求格式(通过 WebBodyFormatMessageProperty);如果是 XML(或不是 Raw),则将调用委托给可以处理 XML 的原始格式化程序。
    猜你喜欢
    • 1970-01-01
    • 2011-03-08
    • 2012-04-07
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    • 2012-11-19
    • 2014-09-30
    • 2015-02-09
    相关资源
    最近更新 更多