我有一个使用此方法的网络服务:
[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'的
我的代码出了什么问题?
答案 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)
{
...
}