2012-08-31 7 views
8

मैंने वीबी.नेट "डब्ल्यूसीएफ रेस्ट सर्विस एप्लिकेशन" प्रोजेक्ट टेम्पलेट का उपयोग करके एक बहुत ही सरल वेब सेवा बनाई है (क्या यह एक अच्छी पसंद है?)। मैं इस तथ्य को छोड़कर अच्छी तरह से काम करता हूं कि<string xmlns = "http://schemas.microsoft.com/2003/10/Serialization/"> से कैसे बचें?

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/"> 
... 
</string> 

मेरे उत्तर में जोड़ा गया।

मैं एक स्ट्रिंग के रूप में मेरी वापसी मान घोषणा की है: इस सवाल का जवाब इस रूप में होने के

<WebInvoke(UriTemplate:="member/login", Method:="POST", 
      responseformat:=WebMessageFormat.Json, 
      BodyStyle:=WebMessageBodyStyle.Bare)> 
Public Function Create(data As IO.Stream) As String 

     Dim strData As String = New IO.StreamReader(data).ReadToEnd() 
     Dim UserAccessForm As LoginAccess = Me.getAnswer(strData) 
     Dim jsonAnswer As String 
     jsonAnswer = Newtonsoft.Json.JsonConvert.SerializeObject(UserAccessForm, Newtonsoft.Json.Formatting.None) 
     Return jsonAnswer 
End Function 

बजाय:

{"logged":false,"userID":"0","message":"Empty body"} 

मैं:

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/"> 
{"logged":false,"userID":"0","message":"Empty body"} 
</string> 

है वहाँ किसी भी जिस तरह से मैं अपने स्ट्रिंग उत्तर के इस अवांछित क्रमबद्धता से बच सकता हूं?

+0

शायद उपरोक्त सभी तैयार उत्तर पहले हैं। यहां एक नज़र डालें http://stackoverflow.com/a/8344219/1093668 – athoik

उत्तर

4

मैं अभी इस समस्या में भाग गया और सेवा अनुबंध में XmlSerializerFormat विशेषता लागू करके इसे हल किया।

यहां एक सी # स्निपेट है - उम्मीद है कि यह आपकी मदद करेगी।

[ServiceContract(Namespace = "")] 
[XmlSerializerFormat] 
interface IHuggies 
{ 
    [OperationContract] 
    [WebInvoke(
     Method = "POST", 
     UriTemplate = "/CheckIfConsumerExists")] 
    bool CheckIfConsumerExists(string parameters); 
} 
-3
public String cleanOUTPUT(String OUTPUT) { 
    OUTPUT = OUTPUT.replaceAll("<string xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/\">",""); 
    OUTPUT = OUTPUT.replaceAll("</string>", "");  
return OUTPUT; 
} 
+0

कृपया अपने उत्तर पर विस्तृत करें, यह दिखाएं कि यह क्या करता है और यह समस्या को कैसे हल करता है। इससे भविष्य में दूसरों की मदद मिलेगी –

2

मुझे लगता है कि यह काम करेगा, ध्यान दें Stream वापसी तर्क के रूप में।

<WebInvoke(UriTemplate:="member/login", Method:="POST", 
      responseformat:=WebMessageFormat.Json, 
      BodyStyle:=WebMessageBodyStyle.Bare)> 
Public Function Create(data As IO.Stream) As Stream 

     Dim strData As String = New IO.StreamReader(data).ReadToEnd() 
     Dim UserAccessForm As LoginAccess = Me.getAnswer(strData) 
     Dim jsonAnswer As String 
     jsonAnswer = Newtonsoft.Json.JsonConvert.SerializeObject(UserAccessForm, Newtonsoft.Json.Formatting.None) 
     Return New MemoryStream(ASCIIEncoding.Default.GetBytes(jsonAnswer)); 
End Function 
संबंधित मुद्दे