2009-07-16 17 views
5

से जेएसओएन और एक्सएमएल प्रारूप लौट रहा है मेरे पास एक मौजूदा वेब सेवा है जो एक्सएमएल प्रतिक्रिया देता है और मैं जेएसओएन लौटने वाले कुछ नए तरीकों को जोड़ना चाहता हूं। क्या मुझे एक अलग वेब सेवा बनाना है जो JSON में लौटाता है या क्या मेरे पास मिश्रण हो सकता है?.NET 3.5 डब्ल्यूसीएफ वेब सेवा (आरईएसटी)

यदि मैं ResponseFormat = WebMessageFormat.JSON का उपयोग करता हूं तो मुझे [DataContractFormat] के साथ एनोटेटेड सेवा की आवश्यकता होती है, लेकिन मुझे ऐसा लगता है कि [xmlSerializerFormat] जो xml प्रकार प्रतिक्रिया प्रारूप के लिए आवश्यक है।

उत्तर

3

मुझे नहीं पता कि यह क्यों संभव नहीं है। आप [ServiceContract] विशेषता (DataContractFormat नहीं) के साथ सेवा को एनोटेट करते हैं। यह

[ServiceContract] 
    public interface IDoStuff 
    { 
     [OperationContract] 
     [WebInvoke(Method = "POST", 
      UriTemplate = "DoStuff", 
      ResponseFormat = WebMessageFormat.Json, 
      RequestFormat = WebMessageFormat.Json)] 
     TestObj DoWork(TestInputObj Inp); 
    } 

इसे XML बनाने के लिए, प्रतिक्रिया प्रतिक्रिया बदलें। जब आप अपना पोस्ट कमांड करते हैं, तो आपको जेसन मिल जाएगा, एक्सएमएल प्रारूप के साथ एक अलग विधि आपको एक्सएमएल देगी।

1

क्या आप इस तथ्य के बारे में जानते हैं कि आपको XmlSerializerFormat की आवश्यकता है? यह केवल तभी आवश्यक है जब आपको XML को क्रमबद्ध करने की आवश्यकता हो जो डेटा अनुबंध Serializer के नियमों का पालन नहीं करता है।

यदि आपको इसकी आवश्यकता है, तो आपको दूसरी सेवा की आवश्यकता है। हालांकि यह बहुत आसान है। ऑपरेशन की गड़बड़ी को अलग-अलग तरीकों से निकालें, फिर उन दोनों तरीकों से उन तरीकों को कॉल करें।

0

मेरा मानना ​​है कि आप एक्सएमएल प्रकार के रूप में पेस्ट में XMLSerilization विशेषता को रेफर कर रहे हैं। यदि ऐसा है तो यह आपके जेसन डेटा को प्रभावित नहीं करेगा। आप एक्सएमएल & जेसन दोनों को क्रमबद्ध करने के लिए इसका उपयोग कर सकते हैं। response.Content.ReadAsJsonDataContract()/ReadAsXmlDataContract() जहां एक्स XMLSerilizable प्रकार के लिए जा रहा है।

संबंधित मुद्दे