首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Dotnet频道
中国IT教育
Google
首页 ASP.NET  C#  XML/WebService ADO.NET VC.NET VB.NET .NET 资讯动态 专题 RSS订阅 讨论 下载
您现在的位置: 中国IT实验室 >> Dotnet >> XMLWeb >> 正文

Xml WebService完全实例解析(4)


  最近时间太少了,马上要走了,这篇文章就算是结尾吧,可能说明会少些,代码多些.
  
  接上篇文章,我们先简单说明下绑定函数.首先实例化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就可以了.
  
  到这里,我们的例子基本也就介绍完了,由于个人的原因,最后一篇可能写的比较仓促,非常惭愧.
  
  不知道写这么多,对学习中的朋友会不会有帮助,里面的东西,很多也算是个人理解,如果出错,还请各位海涵:)
  
  以后可能上网的时间会很少,要考研了,如果你有什么需要帮助的或是疑惑的地方,可以wiseman.net@gmail.com联系我,如果上网的话,一定会回的.
【责编:admin】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·WEB程序开发--ASP.NET和PHP、JSP究竟学哪个?
 ·五步带你入门XML
 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 今日更新
 社区讨论
 博客论点
 频道精选
 Dotnet频道相关导航