
using System; 
  

using System.IO; 
  

using System.Collections.Generic; 
  

using System.Linq; 
  

using System.Collections; 
  

using System.Web; 
  

using System.Net; 
  

using System.Reflection; 
  

using System.CodeDom; 
  

using System.CodeDom.Compiler; 
  

using System.Web.Services; 
  

using System.Text; 
  

using System.Web.Services.Description; 
  

using System.Web.Services.Protocols; 
  

using System.Xml.Serialization; 
  

using System.Data; 
  


public partial 
  
class Default2 : System.Web.UI.Page 
  

{ 
  

???????? 
  
protected 
  void Page_Load( 
  
object sender,EventArgs e) 
  

????????{ 
  

????????????????WebClient client = 
  
new WebClient(); 
  

???????????????? 
  
string url = 
  
"http://webservice.webxml.com.cn/WebServices/TrainTimeWebService.asmx?wsdl"; 

????????????????Stream stream = client.OpenRead(url); 

????????????????ServiceDescription description = ServiceDescription.Read(stream); 

????????????????ServiceDescriptionImporter importer = new ServiceDescriptionImporter();//创建客户端代理代理类。 

????????????????importer.ProtocolName = "Soap"; //指定访问协议。 

????????????????importer.Style = ServiceDescriptionImportStyle.Client; //生成客户端代理。 

????????????????importer.CodeGenerationOptions = CodeGenerationOptions.GenerateProperties | CodeGenerationOptions.GenerateNewAsync; 

????????????????importer.AddServiceDescription(description,null,null); //添加WSDL文档。 

????????????????CodeNamespace nmspace = new CodeNamespace(); //命名空间 

????????????????nmspace.Name = "webservice"; 

????????????????CodeCompileUnit unit = new CodeCompileUnit(); 

????????????????unit.Namespaces.Add(nmspace); 

????????????????ServiceDescriptionImportWarnings warning = importer.Import(nmspace,unit); 

????????????????CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp"); 

????????????????CompilerParameters parameter = new CompilerParameters(); 

????????????????parameter.GenerateExecutable = false; 

????????????????parameter.OutputAssembly = "MyTest.dll";//输出程序集的名称 

????????????????parameter.ReferencedAssemblies.Add("System.dll"); 

????????????????parameter.ReferencedAssemblies.Add("System.XML.dll"); 

????????????????parameter.ReferencedAssemblies.Add("System.Web.Services.dll"); 

????????????????parameter.ReferencedAssemblies.Add("System.Data.dll"); 

????????????????CompilerResults result = provider.CompileAssemblyFromDom(parameter,unit); 

????????????????if (result.Errors.HasErrors) 

????????????????{ 

????????????????????????//Response.Write("调用错误"); 

????????????????} 

????????????????Assembly asm = Assembly.LoadFrom("MyTest.dll");//加载前面生成的程序集 

????????????????Type t = asm.GetType("webservice.TrainTimeWebService"); 

????????????????object o = Activator.CreateInstance(t); 

????????????????MethodInfo method = t.GetMethod("getDetailInfoByTrainCode"); 

????????????????object[] paras = { "7008","" };//这里是获取西安途径宝鸡的火车K591次列车 

????????????????DataSet item = (DataSet)method.Invoke(o,paras);//返回火车时刻信息 

????????????????this.ASPxGridView1.DataSource = item.Tables[0]; 

????????????????this.ASPxGridView1.DataBind(); 


????????} 

}