动态调用Web Service
生活随笔
收集整理的這篇文章主要介紹了
动态调用Web Service
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
代碼 ?System.Net.WebClient?wc?=?new?System.Net.WebClient();
????????System.IO.Stream?stream?=?wc.OpenRead("http://localhost:44763/Jquery/DynamicInvoke.asmx?WSDL");
????????//獲取Web服務描述
????????System.Web.Services.Description.ServiceDescription?sd?=System.Web.Services.Description.ServiceDescription.Read(stream);
????????System.Web.Services.Description.ServiceDescriptionImporter?sdi?=?new?System.Web.Services.Description.ServiceDescriptionImporter();
????????sdi.AddServiceDescription(sd,?"",?"");
????????System.CodeDom.CodeNamespace?ns?=?new?System.CodeDom.CodeNamespace();
????????System.CodeDom.CodeCompileUnit?cu?=?new?System.CodeDom.CodeCompileUnit();
????????cu.Namespaces.Add(ns);
????????sdi.Import(ns,?cu);//導入指定的web服務描述
????????//創(chuàng)建csharp代碼提供程序
????????Microsoft.CSharp.CSharpCodeProvider?provider?=?new?Microsoft.CSharp.CSharpCodeProvider();
????????//創(chuàng)建csharp代碼編譯器
????????System.CodeDom.Compiler.ICodeCompiler?compiler?=?provider.CreateCompiler();
????????//調(diào)用參數(shù)設置
????????System.CodeDom.Compiler.CompilerParameters?parms?=?new?System.CodeDom.Compiler.CompilerParameters();
????????parms.GenerateExecutable?=?false;
????????parms.GenerateInMemory?=?true;
????????parms.ReferencedAssemblies.Add("System.dll");
????????parms.ReferencedAssemblies.Add("System.XML.dll");
????????parms.ReferencedAssemblies.Add("System.Web.Services.dll");
????????parms.ReferencedAssemblies.Add("System.Data.dll");
????????//生成程序集
????????System.CodeDom.Compiler.CompilerResults?result?=?provider.CompileAssemblyFromDom(parms,?cu);
????????if?(true?==?result.Errors.HasErrors)
????????{
?
????????}
????????System.Reflection.Assembly?assembly?=?result.CompiledAssembly;
????????Type?t?=?assembly.GetType("DynamicInvoke",?true,?true);
????????object?obj?=?Activator.CreateInstance(t);
????????System.Reflection.MethodInfo?mi?=?t.GetMethod("HelloWorld");
????????Response.Write(mi.Invoke(obj,?null));
????????System.IO.Stream?stream?=?wc.OpenRead("http://localhost:44763/Jquery/DynamicInvoke.asmx?WSDL");
????????//獲取Web服務描述
????????System.Web.Services.Description.ServiceDescription?sd?=System.Web.Services.Description.ServiceDescription.Read(stream);
????????System.Web.Services.Description.ServiceDescriptionImporter?sdi?=?new?System.Web.Services.Description.ServiceDescriptionImporter();
????????sdi.AddServiceDescription(sd,?"",?"");
????????System.CodeDom.CodeNamespace?ns?=?new?System.CodeDom.CodeNamespace();
????????System.CodeDom.CodeCompileUnit?cu?=?new?System.CodeDom.CodeCompileUnit();
????????cu.Namespaces.Add(ns);
????????sdi.Import(ns,?cu);//導入指定的web服務描述
????????//創(chuàng)建csharp代碼提供程序
????????Microsoft.CSharp.CSharpCodeProvider?provider?=?new?Microsoft.CSharp.CSharpCodeProvider();
????????//創(chuàng)建csharp代碼編譯器
????????System.CodeDom.Compiler.ICodeCompiler?compiler?=?provider.CreateCompiler();
????????//調(diào)用參數(shù)設置
????????System.CodeDom.Compiler.CompilerParameters?parms?=?new?System.CodeDom.Compiler.CompilerParameters();
????????parms.GenerateExecutable?=?false;
????????parms.GenerateInMemory?=?true;
????????parms.ReferencedAssemblies.Add("System.dll");
????????parms.ReferencedAssemblies.Add("System.XML.dll");
????????parms.ReferencedAssemblies.Add("System.Web.Services.dll");
????????parms.ReferencedAssemblies.Add("System.Data.dll");
????????//生成程序集
????????System.CodeDom.Compiler.CompilerResults?result?=?provider.CompileAssemblyFromDom(parms,?cu);
????????if?(true?==?result.Errors.HasErrors)
????????{
?
????????}
????????System.Reflection.Assembly?assembly?=?result.CompiledAssembly;
????????Type?t?=?assembly.GetType("DynamicInvoke",?true,?true);
????????object?obj?=?Activator.CreateInstance(t);
????????System.Reflection.MethodInfo?mi?=?t.GetMethod("HelloWorld");
????????Response.Write(mi.Invoke(obj,?null));
?
轉(zhuǎn)載于:https://www.cnblogs.com/trampt/archive/2010/01/05/1639707.html
總結(jié)
以上是生活随笔為你收集整理的动态调用Web Service的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多文档版的的正则表达式工具
- 下一篇: 让皮肤变水嫩的15条小妙招 - 健康程序