[英]How can i make wcf 3.5 Rest Service which returns a dataset in Json and xml format?
[英]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.