(转载)
通过前面的介绍,大概应该知道怎么写webservice,怎么调用,接下是讲怎么使用webservice提供的服务.下面是一段代码,比较简单:
private
void
button1_Click(
object
sender, System.EventArgs e)
{
// localhost.Service1 a= new WindowsApplication1.localhost.Service1();
// a.HelloWorld();
//
// d.Url = "";
// d.GetSiteAData();
// d.HelloWorld();
//
string strSearch = " 123 " ;
ServiceA.Service1 a = new ServiceA.Service1();
ServiceB.Service1 b = new ServiceB.Service1();
IAsyncResult ar1;
IAsyncResult ar2;
DataSet ds = new DataSet();
XmlNode xmlNode1,xmlNode2;
XmlDataDocument xd = new XmlDataDocument();
StringBuilder xmlString1,xmlString2;
// --简单的异步调用
ar1 = a.BeginGetSiteAData(strSearch, null , null );
ar2 = b.BeginGetSiteAData(strSearch, null , null );
xmlNode1 = a.EndGetSiteAData(ar1);
xmlNode2 = b.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[ 0 ]
}
// 生成新XML
public StringBuilder MakeNewXmlString(StringBuilder str1,StringBuilder str2)
{
str1 = str1.Replace( "" , "" );
str2 = str2.Replace( "" , "" );
str1.Append(str2.ToString());
return str1;
}
{
// localhost.Service1 a= new WindowsApplication1.localhost.Service1();
// a.HelloWorld();
//
// d.Url = "";
// d.GetSiteAData();
// d.HelloWorld();
//
string strSearch = " 123 " ;
ServiceA.Service1 a = new ServiceA.Service1();
ServiceB.Service1 b = new ServiceB.Service1();
IAsyncResult ar1;
IAsyncResult ar2;
DataSet ds = new DataSet();
XmlNode xmlNode1,xmlNode2;
XmlDataDocument xd = new XmlDataDocument();
StringBuilder xmlString1,xmlString2;
// --简单的异步调用
ar1 = a.BeginGetSiteAData(strSearch, null , null );
ar2 = b.BeginGetSiteAData(strSearch, null , null );
xmlNode1 = a.EndGetSiteAData(ar1);
xmlNode2 = b.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[ 0 ]
}
// 生成新XML
public StringBuilder MakeNewXmlString(StringBuilder str1,StringBuilder str2)
{
str1 = str1.Replace( "" , "" );
str2 = str2.Replace( "" , "" );
str1.Append(str2.ToString());
return str1;
}
这段代码是在windows应用程序里运行的,如果是asp.net应用程序的话要改个地方:
dataGrid1.DataSource=ds.Tables[0];后面加上dataGrid1.DataBand();