WCF服务支持datacontractserializer和xmlserializer

时间:2012-04-05 13:04:13

标签: wcf datacontractserializer xmlserializer

我想创建一个WCF服务,该服务将根据请求中的“Accept”标头返回Json和XML。我想使用XML序列化器,因为我可以更好地控制xml输出。为了返回json,我需要使用数据协定序列化器。我发现不可能同时配置它们。有没有人对如何实现这个有任何想法?

由于

1 个答案:

答案 0 :(得分:2)

我从您的问题中假设您要创建一个REST类型API,它根据请求的标头返回XML或JSON,而不是使用SOAP的API。我确信这在WCF中是可行的,但你必须得到恰当的配置,我无法找到正确配置的良好来源。网络上有线索(like here)但不是一个来源。我以为我有一个运行的例子,但是看起来我最近的一些改变打破了它。

WCF中的REST太难了。我的建议是使用ASP.NET Web API来构建REST服务。它是MVC 4.0的一部分,易于使用和配置。开箱即用它的工作方式就像您期望REST API一样,并且将根据标题中“Accept”的设置返回JSON或XML。请注意,此Microsoft产品的历史记录是它最初是作为WCF REST Start Kit,然后成为WCF Web API,现在终于成为ASP.NET Web API。如果你使用MVC选择这很容易。