C#在webservice中传递Hashtable

摘要 : C # Hashtable passed in the webservice

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.WebPar

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就没什么大区别了.

ts;
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就没什么大区别了.

上一篇 :BackgroundWorker下的跨线程操作控件
下一篇 :UpdateProgress不起作用的解决办法