在应用程序和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();
新闻热点
疑难解答