从.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