2009-12-23 64 views
0

我必須從我的webService中將很多值返回到我的Windows應用程序。但是,如何將我的WebService中的單個字符串/ int /布爾值返回給我的應用程序。我將如何返回一個集合,keyValuePair,甚至更好的數據集?或者這只是不可能的?從WebService返回多個值

謝謝:)

+1

FYI:我不認爲這是一個好主意把你的電子郵件地址在帖子中。垃圾郵件發送者可能會抓住它。 –

+0

刪除了電子郵件地址 –

回答

2

任何序列化類可以從Web服務

1

如果你的web服務寫在ASP.NET它從你的web服務中設置返回類型爲更復雜的類型一樣簡單。大多數可序列化類型都受支持。

1

我已經與web服務所使用的最好的方法是返回XML作爲字符串返回。這樣就沒有兼容性問題,解析XML很容易。

0

與返回XML相同,如果您要返回到JavaScript代碼,您可能需要考慮將您的複雜類型作爲JSON序列化返回。

這是一個擴展方法,這使得這很容易...

<Extension()> Public Function ToJSON(Of T As Class)(ByVal target As T) As String 
    Dim serializer = New System.Runtime.Serialization.Json.DataContractJsonSerializer(GetType(T)) 
    Using ms As MemoryStream = New MemoryStream() 
     serializer.WriteObject(ms, target) 
     ms.Flush() 

     Dim bytes As Byte() = ms.GetBuffer() 

     Dim json As String = Encoding.UTF8.GetString(bytes, 0, bytes.Length).Trim(Chr(0)) 

     Return json 
    End Using 
End Function 

然後在你的數據服務,您也可以叫

Return MyObject.ToJSON