从.NET 3.5 WCF Web服务(REST)返回JSON和XML格式
我有一个现有的Web服务返回XML响应,我想添加一些返回JSON的新方法。 我是否必须创建一个以JSON格式返回的独立Web服务,还是可以混合使用?
如果我使用ResponseFormat = WebMessageFormat.JSON,我需要使用[DataContractFormat]注释该服务,但我似乎无法获得xml类型响应格式所需的[XmlSerializerFormat]。
我不明白为什么这是不可能的。 您使用[ServiceContract]属性(而不是DataContractFormat)注释该服务。 它应该看起来像
[ServiceContract]
public interface IDoStuff
{
[OperationContract]
[WebInvoke(Method = "POST",
UriTemplate = "DoStuff",
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json)]
TestObj DoWork(TestInputObj Inp);
}
为了使它成为XML,只需更改responseformat。 当你执行你的post命令时,你会得到json,一个单独的xml格式的方法会给你xml。
你知道一个事实,你需要XmlSerializerFormat吗? 只有当您需要序列化为不符合Data Contract Serializer规则的XML时才需要这样做。
如果你确实需要这个,那么你确实需要第二个服务。 虽然这很容易。 只需将共同操作的内容提取到单独的方法中,然后从两个服务中调用这些方法。
我相信你正在尝试粘贴为xml类型的XMLSerization属性。 如果是这样,它不会影响你的JSON数据。 您可以使用它来对XML和Json进行系列化。 response.Content.ReadAsJsonDataContract()/ ReadAsXmlDataContract()其中T代表XMLSerilizable类型。
链接地址: http://www.djcxy.com/p/45805.html上一篇: Returning JSON AND XML format from a .NET 3.5 WCF web service (REST)
下一篇: How to set X