在應用程序和web服務之間來回傳遞包含公共屬性和域的類,在處理結構化數據時這個功能很有用:
通過創建web服務代理類在應用程序內訪問web服務,其實質是遠程web服務類的屬性和方法的本地代表
順便寫出使用流程:
1>首先建立一個web 服務項目,重新命名一個服務文件:myproductserivce.asmx
2>在myproductserivce.asmx寫代碼:
寫你的web 服務方法:
如:
[webmethod(cacheduration=30,description="這是一個返回dataset的web服務!")]
public dataset getproducts()
{
string constr;
constr="server=microsoft-lab2;user id=sa; password=; database=northwind";
string sql;
sql="select top 10 productname,unitprice,discontinued from products";
sqlconnection mycon=new sqlconnection ();
mycon.connectionstring =constr;
sqldataadapter myadp=new sqldataadapter (sql,mycon);
dataset ds=new dataset ();
myadp.fill (ds);
mycon.close ();
myadp.dispose ();
return ds;
}
3>創建web服務之后,在命令行執行wsdl.exe工具為服務產生代理類:
wsdl /l:cs http://localhost/myproductservice.asmx?wsdl
4>然后,執行下面的cs命令;編譯代理類(通過上面的命令把此服務轉化成了類文件)
csc /t: library /r:system.dll,system.web.services.dll,system.xml.dll,system.data.dll
myproductservice.cs
5>在的asp.net項目中引用上面創建的dll,并且添加對system.web.services的引用
這時就可以在代碼中使用了,就象以前一樣調用他的方法:
如:
myproductservice mypro=new myproductservice ();
datagrid1.datasource =mypro.getproducts();
datagrid1.databind();
新聞熱點
疑難解答