将字符串数组传递给webservice方法

时间:2012-10-20 19:05:16

标签: c# asp.net visual-studio-2010 web-services asmx

我有一个使用此方法的网络服务:

[WebMethod]
public int[] stringTest(string[] tString)
{

    int numberOfStrings = tString.Length;
    int[] returnS = new int[numberOfStrings];
    for (int i = 0; i <= numberOfStrings; i++)
    { 
        returnS[i] = 1;

    }
    return returnS;
}

然后我尝试从客户端程序传递一个字符串数组,如下所示:

var client = new WebServiceSample.WebService1SoapClient();
string[] parameterNames = { "Windsensor","Temperature sensor"};
test = client.stringTest(parameterNames);

但我收到了这些错误:

  

“SoapWebServiceClient.WebServiceSample.WebService1SoapClient.stringTest(SoapWebServiceClient.WebServiceSample.ArrayOfString)”的最佳重载方法匹配   有一些无效的论点

  

参数1:无法从'string []'转换为   'SoapWebServiceClient.WebServiceSample.ArrayOfString'

我的代码出了什么问题?

2 个答案:

答案 0 :(得分:3)

试试这个

SoapWebServiceClient.WebServiceSample.ArrayOfString arrString = SoapWebServiceClient.WebServiceSample.ArrayOfString();

arrString.AddRange(parameterNames);

arrString.Add(....); //if that exists

检查这些链接

希望有所帮助!

答案 1 :(得分:0)

一个简单的方法是:

在JavaScript中构建一个新数组:

var myArray = new Array();
myArray.push([value1, value2,...]);

在C#中,只需创建一个ICollection参数即可获得矩阵:

[WebMethod(EnableSession = true)]
public MyMethod[] GetMatrixFromJavascript(System.Collections.ICollection myArray)
{ 
   ... 
}