如何在WebServices方法中使用Hashtable

.net中凡是实现了IDictionary接口的类型,XML序列化器均无法接受。既然WebServices使用了XML序列化,那么其方法就无法直接使用Hashtable。

于是,可以采用间接的方法,即:将Hashtable转换成二维交错数组,具体方法如下:  

 private object[][] ToJaggedArray
  {
   get
   {
    object[][] oo = new object[data.Count][];
    int i = 0;
    foreach (object key in data.Keys)
    {
     oo[i] = new object[]{key, data[key]};
     i++;
    }
    return oo;
   }
  }

  private Hashtable ToHashtable
  {
   get
   {
    Hashtable ht = new Hashtable(data.Length);
    foreach(object[] pair in data)
    {
     object key = pair[0];
     object value = pair[1];
     ht[key] = value;
    }
    return ht;
   }
  }

 

你可能感兴趣的:(xml,object,OO,pair)