0

我有一个网络服务和一个网络应用程序。
Web 服务具有以下代码:

List<string> listCen =new List<string>();
serviciowebclienteKmeans.ServicioWebKmeans serv = new serviciowebclienteKmeans.ServicioWebKmeans();
 serv.Parameters(element, number, out listCen);

我没有输入更多不必要的细节,在我的网络应用程序中,我有以下代码

 public double[][] Parameters(int N_element, int N_number, out List<string> list2)
 {

 }

但我收到“无法将 System.Collections.Generic.List 转换为字符串 []”的错误

有人可以解释一下原因吗,顺便说一下,我使用的是 Visual Studio 2010 Ultimate 和 C#,我忘了提到 OUT 语句中的 de web services 的预期结果之一是可能有 3 到 20 的字符串列表所以我真正需要的是字符串列表

4

3 回答 3

1

因此,如果我理解正确,第一个代码片段是通过自动生成的 Web 引用类访问 Web 应用程序。那是对的吗?

尽管您的方法List<string>在其定义中使用了 a,但就 Web 应用程序和调用代码之间的数据传输方式而言,这与数组没有区别。List<>Visual Studio 以将s 视为引用类中的数组的方式解释 Web 应用程序的定义。解决方案很简单 - 只需传递一个数组:

string[] listCenAry;
serviciowebclienteKmeans.ServicioWebKmeans serv = new serviciowebclienteKmeans.ServicioWebKmeans();
serv.Parameters(element, number, out listCenAry);

// if you need a List<string>:
List<string> listCen = new List<string>(listCenAry);
于 2013-01-16T20:19:05.623 回答
1

添加“服务参考”时,您可以选择指定生成的“集合类型”。默认情况下,这是 System.Array,但您可以根据需要将其更改为 System.Collections.Generic.List。添加参考时,它位于“高级”部分(左下角的按钮)。请参阅下面的屏幕截图以供参考。

在此处输入图像描述

于 2013-01-16T20:49:46.857 回答
0

我的猜测是,当您添加引用时,它会将list2参数转换为字符串数组。您可以更改服务参考设置以使用集合类型,Generic.List也可以仅更改客户端以使用数组:

string[] listCen;
serviciowebclienteKmeans.ServicioWebKmeans serv = new serviciowebclienteKmeans.ServicioWebKmeans();
serv.Parameters(element, number, out listCen);
于 2013-01-16T20:19:50.973 回答