2009-12-23 160 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