【发布时间】:2012-04-05 13:04:12
【问题描述】:
我想创建一个 WCF 服务,该服务将根据请求中的“Accept”标头返回 Json 和 XML。我想使用 XML 序列化程序,因为我可以更好地控制 xml 输出。要返回 json,我需要使用数据合同序列化程序。我看到不可能同时配置两者。有人对我如何实现这一点有任何想法吗?
谢谢
【问题讨论】:
标签: wcf datacontractserializer xmlserializer
我想创建一个 WCF 服务,该服务将根据请求中的“Accept”标头返回 Json 和 XML。我想使用 XML 序列化程序,因为我可以更好地控制 xml 输出。要返回 json,我需要使用数据合同序列化程序。我看到不可能同时配置两者。有人对我如何实现这一点有任何想法吗?
谢谢
【问题讨论】:
标签: wcf datacontractserializer xmlserializer
我从您的问题中假设您想要创建一个 REST 类型的 API,它根据请求的标头返回 XML 或 JSON,而不是使用 SOAP 的 API。我确信这在 WCF 中是可能的,但是您必须正确配置配置,而且我很难找到正确配置的良好来源。网络上到处都是线索 (like here),但没有一个来源。我以为我有一个正在运行的示例,但我最近所做的一些更改似乎破坏了它。
WCF 中的 REST 太难了。我的建议是使用ASP.NET Web API 来构建 REST 服务。它是 MVC 4.0 的一部分,易于使用和配置。开箱即用,它的工作方式就像您期望 REST API 工作一样,并将返回 JSON 或 XML,具体取决于标头中“接受”的设置。请注意,这个 Microsoft 产品的历史是它最初是 WCF REST Start Kit,后来成为 WCF Web API,现在最终成为 ASP.NET Web API。如果您使用 MVC,那么选择它很容易。
【讨论】: