加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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 就可以了。
?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读