簡體   English   中英

從.NET 3.5 WCF Web服務(REST)返回JSON和XML格式

[英]Returning JSON AND XML format from a .NET 3.5 WCF web service (REST)

我有一個返回XML響應的現有Web服務,我想添加一些返回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嗎? 只有在需要序列化為不符合數據協定序列化程序規則的XML時才需要這樣做。

如果您確實需要,那么您需要第二項服務。 這很容易。 只需將共同操作的內容提取到單獨的方法中,然后從兩個服務中調用這些方法。

我相信你在“粘貼為XML”類型中引用XmlSerializer屬性。 如果是這樣,它不會影響您的JSON數據。 您可以使用它來序列化XML和JSON。 response.Content.ReadAsJsonDataContract<T>() / ReadAsXmlDataContract<T>()其中T表示XMLSerializable類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM