【问题标题】:Return more than a single value from a WebService从 WebService 返回多个值
【发布时间】:2009-12-23 18:15:21
【问题描述】:

我必须从我的 webService 将很多值返回给我的 Windows 应用程序。但是我将如何从我的 WebService 向我的应用程序返回多个字符串/int/boolean。我将如何返回一个集合、keyValuePair,甚至更好的是一个 DataSet?或者这是不可能的?

谢谢你:)

【问题讨论】:

  • 仅供参考:我认为将您的电子邮件地址放在帖子中不是一个好主意。垃圾邮件发送者可能会抓住它。

标签: vb.net web-services return-value return


【解决方案1】:

任何可序列化的类都可以从 Web 服务返回

【讨论】:

    【解决方案2】:

    如果您的 Web 服务是用 ASP.NET 编写的,那么只需将 Web 服务的返回类型设置为更复杂的类型即可。支持大多数可序列化类型。

    【讨论】:

      【解决方案3】:

      我在 web 服务中使用过的最佳方法是将 XML 作为字符串返回。这样就没有兼容性问题,解析 XML 也很容易。

      【讨论】:

        【解决方案4】:

        与返回 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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-09-18
          • 1970-01-01
          • 1970-01-01
          • 2013-02-12
          • 2014-03-14
          • 2018-01-01
          • 1970-01-01
          相关资源
          最近更新 更多