生成名字空间为sitea的代理类的方法
我们先简单说明下绑定函数。首先实例化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("")) 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("",""); str2=str2.Replace("",""); str1.Append(str2.ToString()); return str1; }
这有两个需要注意的地方,一个是xml构造,还有就是异步调用的实现,请读者,自己理解。
下面讲下通过dll来引用webservice的方法,我只把流程介绍下。更多文章http://yssiise.blog.51cto.com/
首先,在ie输入服务的地址,如:ttp://www.xxx.com/service.asmx
然后写输入ttp://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就可以了。健康知识了解重庆尿结石的治疗
浙公网安备 33010602011771号