这是我的asmx
WebService方法:
[WebMethod]
public string GetHeader(List<KeyValuePair<string, string>> signature_additional_parameters)
{
return "ok";
}
但是当我从另一个应用程序中调用它时:
var signature_additional_parameters = new List<KeyValuePair<string, string>>();
signature_additional_parameters.Add(new KeyValuePair<string, string>("test", "my data"));
var header = MyWS.GetHeader(signature_additional_parameters);
它说最佳重载方法匹配&#39; WSArchieSocial.WSModuloSocial.GetHeader(WSArchieSocial.KeyValuePairOfStringString [])&#39;有一些无效的论点?
为何使用WSArchieSocial.KeyValuePairOfStringString[]
?我该如何解决?
答案 0 :(得分:1)
您的网络服务需要一个KeyValuePair
数组。只需在列表中调用ToArray
即可解决您的错误。
var header = MyWS.GetHeader(signature_additional_parameters.ToArray());
我想这与你为服务添加引用的方式有关。您可以在添加服务引用时指定集合类型,默认为数组,这就是它将List<KeyValuePair>
视为数组的原因。
您可以通过在添加服务时转到“高级”来选择集合类型。