【问题标题】:How to tweak default JSON serializer in WCF REST如何在 WCF REST 中调整默认 JSON 序列化程序
【发布时间】:2011-09-30 03:21:16
【问题描述】:

WCF REST 服务非常好用,它会根据标头回复/接受 JSON 或 XML。

我想稍微调整一下内置 JSON 序列化程序,以便它对 Byte[] 的编码/解码略有不同。更具体地说,我想为此使用 Base64。

我可以设置影响整个服务的自定义类型序列化程序的任何指针/示例吗?

【问题讨论】:

    标签: wcf json wcf-rest


    【解决方案1】:

    http://blogs.msdn.com/b/carlosfigueira/archive/2011/05/03/wcf-extensibility-message-formatters.aspx 上的帖子展示了如何将默认 JSON 序列化器 (DataContractJsonSerializer) 替换为自定义序列化器(在本例中为 JSON.NET)。

    【讨论】:

    • 我看到它是为旧的 WCF 完成的。我正在使用 .NET 4 WCF 休息并且没有涉及任何属性。代码非常清晰透明。我想知道是否有任何方法可以在 web.config 中的某处设置序列化程序?
    • 您可以创建一个行为扩展(blogs.msdn.com/b/carlosfigueira/archive/2011/06/28/… 处的信息)将其添加到配置中,但从 4.0 开始,您仍然需要将其插入 WCF 管道的代码。使用新的 WCF Web API(目前在 wcf.codeplex.com 预览)会容易得多(您将编写一个媒体类型格式化程序并使用工厂将其插入)。
    【解决方案2】:

    我刚刚使用 NETFx Json.NET MediaTypeFormatter 在我的 WCF REST 服务 4.0 中成功地将默认 DataContractJsonSerializer 替换为 JSON.NET 序列化程序。另请参阅JSON.NET Serializer for WCF REST Services,了解我遇到的问题的解决方案。

    【讨论】:

      猜你喜欢
      • 2014-09-30
      • 2011-10-11
      • 1970-01-01
      • 2011-03-08
      • 1970-01-01
      • 2012-11-19
      • 1970-01-01
      • 2021-06-12
      • 2013-01-13
      相关资源
      最近更新 更多