webservice实例(三)
发布时间:2020-12-17 02:50:03 所属栏目:安全 来源:网络整理
导读:? webservice 实例 ( 三 ) qq 群: 19877329 Mail: yufan27209@qq.com By: jfan?2007-07-23 接上篇文章 , 我们先简单说明下绑定函数 . 首先实例化 ServiceA, 这个和一般类的实例化并没有不同 . 接下来用 xmlNode1 来接受函数的返回值 , 接下来是构造 xml, 并
?
webservice
实例
(
三
)
qq
群:
19877329
Mail: yufan27209@qq.com
By: jfan?2007-07-23
接上篇文章
,
我们先简单说明下绑定函数
.
首先实例化
ServiceA,
这个和一般类的实例化并没有不同
.
接下来用
xmlNode1
来接受函数的返回值
,
接下来是构造
xml,
并将其转化为
dataset,
这是通用的方法
,
如果是刚接触不久的朋友
,
最好能记下这种方法
.
?????
接下来给出异步调用两个服务的代码
(
这个我也没有做,呵呵,就全用前人的代码了
)
//绑定数据
??public void BindData() ??{ ???IAsyncResult ar1; ???IAsyncResult ar2; ???serviceA=new SiteA.Service1(); ???serviceB=new SiteB.Service1(); ???DataSet ds=new DataSet(); ???XmlNode xmlNode1,xmlNode2; ???XmlDataDocument xd=new XmlDataDocument(); ???StringBuilder xmlString1,xmlString2; ???//--简单的异步调用 ???ar1=serviceA.BeginGetSiteAData(strSearch,null,null); ???ar2=serviceB.BeginGetSiteAData(strSearch,null); ???xmlNode1=serviceA.EndGetSiteAData(ar1); ???xmlNode2=serviceB.EndGetSiteAData(ar2); ???//---------- ???if(xmlNode1==null&&xmlNode2==null) //--存储过程执行失败 ????return;
???xmlString1=new StringBuilder(xmlNode1.OuterXml);
???xmlString2=new StringBuilder(xmlNode2.OuterXml); ??? xmlString1=MakeNewXmlString(xmlString1,xmlString2);? // 生成新的 xml ???if(xmlString1.ToString().Equals("<NewDataSet xmlns=/"/"></NewDataSet>")) ????return ; ???xd.LoadXml(xmlString1.ToString()); ???ds.ReadXml(new XmlNodeReader(xd)); ???DataGrid1.DataSource=ds.Tables[0].DefaultView; ???DataGrid1.DataBind(); ??}
??//生成新XML
??public StringBuilder MakeNewXmlString(StringBuilder str1,StringBuilder str2) ??{ ???str1=str1.Replace("</NewDataSet>",""); ???str2=str2.Replace("<NewDataSet xmlns=/"/">",""); ???str1.Append(str2.ToString()); ???return str1; ??}
这有两个需要注意的地方
,
一个是
xml
构造
,
还有就是异步调用的实现
,
请读者
,
自己理解
下面讲下通过
dll
来引用
webservice
的方法
,
我只把流程介绍下
.
首先
,
在
ie
输入服务的地址
,
如
:http://www.xxx.com/service.asmx
然后写输入
http://www.xxx.com/service.asmx?wsdl
打开后
,
另存为
xxx.wsdl
然后用
vs
的命令提示符来编译
:wsdl /namespace:SiteA ServiceA.ws
生成名字空间为
sitea
的代理类
最后
csc /out:ServiceA.dll /t:library Service1.cs,
其中
service1.cs
为代理类文件
最后引用
dll
就可以了。
?
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |