C# 动态调用Webservice 速度慢
下面的代码调试通过,与大家分享。
不过执行速度比较慢,调用一次一般要3-4秒。
请大家给点建议或分析下原因。
谢谢。
不过执行速度比较慢,调用一次一般要3-4秒。
请大家给点建议或分析下原因。
谢谢。
try
{
// 获取WSDL
WebClient wc = new WebClient();
Stream stream = wc.OpenRead(url + "?WSDL");
ServiceDescription sd = ServiceDescription.Read(stream);
ServiceDescriptionImporter sdi = new ServiceDescriptionImporter();
sdi.AddServiceDescription(sd, "", "");
CodeNamespace cn = new CodeNamespace(@namespace);
// 生成客户端代理类代码
CodeCompileUnit ccu = new CodeCompileUnit();
ccu.Namespaces.Add(cn);
sdi.Import(cn, ccu);
CSharpCodeProvider icc = new CSharpCodeProvider();
// 设定编译参数
CompilerParameters cplist = new CompilerParameters();
cplist.GenerateExecutable = false;
cplist.GenerateInMemory = true;
cplist.ReferencedAssemblies.Add("System.dll");
cplist.ReferencedAssemblies.Add("System.XML.dll");
cplist.ReferencedAssemblies.Add("System.Web.Services.dll");
cplist.ReferencedAssemblies.Add("System.Data.dll");
// 编译代理类
CompilerResults cr = icc.CompileAssemblyFromDom(cplist, ccu);
// 抛出异常
if (cr.Errors.HasErrors)
{
StringBuilder sb = new StringBuilder();
foreach (CompilerError ce in cr.Errors)
{
sb.Append(ce.ToString());
sb.Append(System.Environment.NewLine);
}
throw new Exception(sb.ToString());
}
// 生成代理实例,并调用方法
System.Reflection.Assembly assembly = cr.CompiledAssembly;
Type t = assembly.GetType(@namespace + "." + classname, true, true);
object obj = Activator.CreateInstance(t);
System.Reflection.MethodInfo mi = t.GetMethod(methodname);
return mi.Invoke(obj, args);
}
catch (Exception ex)
{
throw new Exception(ex.InnerException.Message, new Exception(ex.InnerException.StackTrace));
}
...全文
相关推荐
C#_.NET_动态调用webservice的三种方式
C# _.NET_动态调用webservice的三种方式在本文中,我们将讨论如何动态调用WebService的三种方式。在某些情况下,我们可能需要在程序运行期间动态调用一个未知的服务。
c# 三种方法调用WebService接口
**动态调用WebService接口**: - 动态调用WebService接口不需要事先生成客户端的代理类,而是通过程序代码在运行时动态地调用远程服务。
C#动态调用WebService服务
本文将深入探讨如何在C#中实现动态调用WebService服务,主要涉及"反射"和"动态调用"这两个核心概念。首先,我们要理解什么是WebService。
C#动态webservice调用接口
"C#动态调用WebService接口的实现代码示例"在C#编程中,动态调用WebService接口是常见的任务,特别是在需要与不同系统交互或者需要灵活处理多种服务调用时。本示例提供了一个名为`
C# Soap调用WebService的实例
"C#调用SOAP WebService的实例展示了如何使用C#代码与SOAP协议进行交互,通过发送POST请求到指定的WebService地址并处理返回的响应数据。"在C#编程中,当我们需要与


