KeyValuePair从WCF -转换错误时,通过ASP.Net消费

本文关键字:通过 ASP Net 消费 错误 WCF 转换 KeyValuePair | 更新日期: 2023-09-27 18:04:43

我有一个WCF web服务,它返回一个KeyValuePair。即:

List<KeyVauePair<string,int>>

当我在WCF测试客户端测试时,它说返回的类型是:

System.Collections.Generic.KeyValuePair<System.Collections.Generic.KeyValuePair<System.String,System.Int32>>

所以这很好很好。然后在ASP中使用这个web方法。Net通过:

List<KeyValuePair<string, int>> testkv = WCF.GetOptionSetValues("contact", "types");

但是这不起作用,编译器说:

不能隐式转换System.Collections.Generic类型。KeyValuePair[] to System.Collections.Generic.List System.Collections.Generic.KeyValuePair

由于某些原因,编译器似乎认为web方法的返回类型是:

System.Collections.Generic.KeyValuePair[]

但它不是数组。其答:

System.Collections.Generic.KeyValuePair

我想知道为什么编译器将web方法解释为KeyValuePair[]而不是KeyValuePair?

KeyValuePair从WCF -转换错误时,通过ASP.Net消费

KeyValuePair的集合和KeyValuePair的列表不是一回事。如果你想要一个List,你可能需要遍历你的集合并构建一个List。

foreach (KeyValuePair<string, int> pair in WCF.GetOptionSetValues("contact", "types"))
{
    myList.Add(pair);
}