今天尝试用web服务传递一个字符串的二维数组,但是却出现如下症状,搜索了一下,在微软支持中心找到了答案。。
症状:
尝试通过使用包含返回类型或是多维数组的参数类型的 Web 服务方法从 Web 服务中获取 Web 服务描述语言 (WSDL) 文档时收到下面的 HTML 错误消息:
无法序列化类型 System.String [,] 的对象。 不支持多维数组。
如果调用 Web 服务,将生成异常。
使用 ASP.NET 创建的 XML Web services 不支持多维数组。
解决方案:
而不是使用多维数组,使用以下代码来指定数组的数组 (即,交错数组):
Visual C# .NET example:
- [WebMethod]
- public string[][] ReturnMultiDimArray()
- {
- string [] y = {"ab","cd"};
- string [] z = {"ef","gh"};
- string [][] x = {y,z};
- return x;
- }
- <WebMethod> Public Function ReturnMultiDimArray() As String()()
- Dim y As String()
- Dim z As String()
- Dim x As String()() = New String()() {y, z}
- Return x
- End Function