在WebService中传递SortedList, ListDictionary 和 Hashtable 参数,如果直接传递,就会报错:System.NotSupportedException: The type System.Collections.SortedList is not
supported because it implements IDictionary.
通过集合类的CopyTo 方法将其转化成DictionaryEntry 数组,再进行传递;客户端接收后,再将其转化成SortedList, ListDictionary 和 Hashtable 集合。
[WebMethod]
public DictionaryEntry[] HelloWorld()
{
SortedList sl = new SortedList();
sl.Add("Key","Value");
DictionaryEntry[] array = new DictionaryEntry[sl.Count];
sl.CopyTo(array, 0);
return array;
}
public void get(DictionaryEntry[] entries)
{
SortedList list = new SortedList();
foreach (DictionaryEntry entry in entries)
{
ist.Add(entry.Key, entry.Value);
}
}