
using Sy
stem;

using Sy
stem.IO;

using Sy
stem.Collections.Generic;

using Sy
stem.Linq;

using Sy
stem.Collections;

using Sy
stem.Web;

using Sy
stem.Net;

using Sy
stem.Reflection;

using Sy
stem.CodeDom;

using Sy
stem.CodeDom.Compiler;

using Sy
stem.Web.Services;

using Sy
stem.Text;

using Sy
stem.Web.Services.Description;

using Sy
stem.Web.Services.Protocols;

using Sy
stem.Xml.Serialization;

using Sy
stem.Data;


public partial
class Default2 : Sy
stem.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();


}

}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。