zoukankan      html  css  js  c++  java
  • 【整理】动态加载Web Services

    WebClient client = new WebClient();
    String url = "http://localhost/MESAPIWebService/MESAPI.asmx?WSDL";//这个地址可以写在Config文件里面,这里取出来就行了.在原地址后面加上: ?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 = "MESWebService";
    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)
    {
    // 显示编译错误信息
    }

    Assembly asm = Assembly.LoadFrom("MyTest.dll");//加载前面生成的程序集
    Type t = asm.GetType("MESWebService.Service");

    object o = Activator.CreateInstance(t);
    MethodInfo method = t.GetMethod("GetUserInfo");//GetPersons是服务端的方法名称,你想调用服务端的什么方法都可以在这里改,最好封装一下

    DataSet ds = (DataSet)method.Invoke(o, new object[] { "CN04633" });

  • 相关阅读:
    第一次个人编程作业
    第一次博客作业
    20175311 2018-2019-2 《Java程序设计》第五周学习总结
    2018-2019-2 20175311 实验一《Java开发环境的熟悉》实验报告
    20175311 2018-2019-2 《Java程序设计》第四周学习总结
    团队项目-选题报告
    第二次结队编程作业
    第一次结对编程作业
    第1组 团队展示(组长)
    第一次个人编程作业
  • 原文地址:https://www.cnblogs.com/wonder315/p/4325450.html
Copyright © 2011-2022 走看看