Xml WebService完全实例解析(4)

ZDNet软件频道 时间:2008-06-28 作者: | 中国IT实验室 我要评论()
本文关键词:实例 WebService xml 软件
上篇文章,我们先简单说明下绑定函数.首先实例化ServiceA,这个和一般类的实例化并没有不同
接上篇文章,我们先简单说明下绑定函数.首先实例化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,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["list"].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.wsdl
  
  生成名字空间为sitea的代理类
  
  最后csc /out:ServiceA.dll /t:library Service1.cs ,其中service1.cs为代理类文件
  
  最后引用dll就可以了.
  
      
  

实例

WebService

xml

软件


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134