传递List <keyvaluepair <string,string =“”>&gt;有什么问题?到WebService?</keyvaluepair <string,>

时间:2014-04-16 12:58:18

标签: c# .net web-services

这是我的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[]?我该如何解决?

1 个答案:

答案 0 :(得分:1)

您的网络服务需要一个KeyValuePair数组。只需在列表中调用ToArray即可解决您的错误。

var header = MyWS.GetHeader(signature_additional_parameters.ToArray());

我想这与你为服务添加引用的方式有关。您可以在添加服务引用时指定集合类型,默认为数组,这就是它将List<KeyValuePair>视为数组的原因。

您可以通过在添加服务时转到“高级”来选择集合类型。 enter image description here