
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();


????????}

}