我必须从我的webService中将很多值返回到我的Windows应用程序。但是,如何将我的WebService中的单个字符串/ int /布尔值返回给我的应用程序。我将如何返回一个集合,keyValuePair,甚至更好的数据集?或者这只是不可能的?从WebService返回多个值
谢谢:)
我必须从我的webService中将很多值返回到我的Windows应用程序。但是,如何将我的WebService中的单个字符串/ int /布尔值返回给我的应用程序。我将如何返回一个集合,keyValuePair,甚至更好的数据集?或者这只是不可能的?从WebService返回多个值
谢谢:)
任何序列化类可以从Web服务
如果你的web服务写在ASP.NET它从你的web服务中设置返回类型为更复杂的类型一样简单。大多数可序列化类型都受支持。
我已经与web服务所使用的最好的方法是返回XML作为字符串返回。这样就没有兼容性问题,解析XML很容易。
与返回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
FYI:我不认为这是一个好主意把你的电子邮件地址在帖子中。垃圾邮件发送者可能会抓住它。 –
删除了电子邮件地址 –