在webservice中传递Hashtable

< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>
webservice中不支持hashtable的数据类型,那么如何在webservice中传递hashtable呢?我们可以通过将hashtable转化为webservice中支持的数组的类型来进行传递,在调用的时候再转换成hashtable就可以了。
[WebMethod]
    public DictionaryEntry[] SetValue()
    {
        Hashtable sl = new Hashtable();
        sl.Add("kiss", "me");
        sl.Add("love", "you");
        DictionaryEntry[] array = new DictionaryEntry[sl.Count];
        sl.CopyTo(array, 0);
        return array;
    }
调用webservice中的方法

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;
using SourceCode;
using localhost;
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            getHashTable();
          }
      }

    private void getHashTable()
    {
        Hashtable obj = new Hashtable();
        localhost.WebService test = new localhost.WebService();
        localhost.DictionaryEntry[] entries = (localhost.DictionaryEntry[])test.SetValue();
        foreach (localhost.DictionaryEntry entry in entries)
        {
               obj.Add(entry.Key, entry.Value);
        }
        foreach (System.Collections.DictionaryEntry each in obj)
        {
            Response.Write(each.Key.ToString() + "=" + each.Value.ToString() + "<br/>");
        }

    }
    }

注:
引用webservice的方法

在 "项目 "单击右键-> "添加web引用 ",输入你的webservice地址,让系统帮你列出Url上可用的webservice,输入 "web 引用名 "-> "添加引用 "就可以了.
剩下的和引用一个普通的dll就没什么大区别了.

原文地址:https://www.cnblogs.com/netcorner/p/2911999.html