社区
C#
帖子详情
有没有动态调用webservice的方法?
symbio
2005-06-28 09:58:01
由于初学webservice还不是非常清楚
现在要做一个多个webservice之间数据交互的东西
webservice是从列表中取出来的
所以不能在程序里面直接引用
请问有什么办法解决
...全文
313
7
打赏
收藏
有没有动态调用webservice的方法?
由于初学webservice还不是非常清楚 现在要做一个多个webservice之间数据交互的东西 webservice是从列表中取出来的 所以不能在程序里面直接引用 请问有什么办法解决
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
symbio
2005-06-28
打赏
举报
回复
成功了谢谢楼上的几位 马上就散分^^
symbio
2005-06-28
打赏
举报
回复
谢谢 我先看看 其实每个服务器都是一样的 只有ip不同
ajieboy
2005-06-28
打赏
举报
回复
网上搜来的,以前用过,可以实现。
/// <summary>
/// 根据指定的信息,调用远程WebService方法
/// </summary>
/// <param name="url">WebService的http形式的地址</param>
/// <param name="namespaceName">欲调用的WebService的命名空间</param>
/// <param name="classname">欲调用的WebService的类名(不包括命名空间前缀)</param>
/// <param name="methodname">欲调用的WebService的方法名</param>
/// <param name="args">参数列表</param>
/// <returns>WebService的执行结果</returns>
/// <remarks>
/// 如果调用失败,将会抛出Exception。请调用的时候,适当截获异常。
/// 异常信息可能会发生在两个地方:
/// 1、动态构造WebService的时候,CompileAssembly失败。
/// 2、WebService本身执行失败。
/// </remarks>
/// <example>
/// <code>
/// object obj = InvokeWebservice("http://localhost/GSP_WorkflowWebservice/common.asmx","Genersoft.Platform.Service.Workflow","Common","GetToolType",new object[]{"1"});
/// </code>
/// </example>
private object InvokeWebservice(string url, string namespaceName, string classname, string methodname, object[] args)
{
try
{
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(namespaceName);
CodeCompileUnit ccu = new CodeCompileUnit();
ccu.Namespaces.Add(cn);
sdi.Import(cn,ccu);
CSharpCodeProvider csc = new CSharpCodeProvider();
ICodeCompiler icc = csc.CreateCompiler();
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(true == cr.Errors.HasErrors)
{
StringBuilder sb = new StringBuilder();
foreach(CompilerError ce in cr.Errors)
{
sb.Append(ce.ToString());
sb.Append(Environment.NewLine);
}
throw new Exception(sb.ToString());
}
Assembly assembly = cr.CompiledAssembly;
Type t = assembly.GetType(namespaceName+"."+classname,true,true);
object obj = Activator.CreateInstance(t);
MethodInfo mi = t.GetMethod(methodname);
return mi.Invoke(obj,args);
}
catch(Exception ex)
{
throw new Exception(ex.InnerException.Message,new Exception(ex.InnerException.StackTrace));
}
}
LoveCherry
2005-06-28
打赏
举报
回复
http://community.csdn.net/Expert/TopicView3.asp?id=3629871
HapTears
2005-06-28
打赏
举报
回复
这些webservers是不是都一样,只是发的服务器不同而已,如果是的话,就可以动态调用
thinkingforever
2005-06-28
打赏
举报
回复
说具体点.什么情况
我不懂电脑
2005-06-28
打赏
举报
回复
没有什么好办法。
android
调用
webservice
接口实现登陆源码
通过此可以对android
调用
webservice
有一个更深刻的认识
WebService
上传下载文件
用
webservice
作为服务器端,以流的方式实现文件的上传和下载,可以自动
调用
winrar进行压缩和加密,支持多线程和断点续传功能,默认是16K一个包,全部源码,已经在实际项目中应用。客户端有winform和服务两种方式的...
Android 通过
WebService
进行网络编程,使用工具类轻松实现
Android 通过
WebService
进行网络编程,这里实现了
调用
WebService
的天气接口,项目详情http://blog.csdn.net/xiaanming/article/details/16871117
动态
调用
WebService
接口的几种方式
二、为什么要
动态
调用
WebService
接口? 一般在C#开发中
调用
webService
服务中的接口都是通过引用过来就行
调用
的,步骤如下: 1.找到引用,右击添加服务引用,找到高级,添加web引用,添加之后就可以直接
调用
里面的...
vue
调用
webservice
_
动态
调用
WebService
接口的几种方式
这里就不再赘述了,想要了解的====》传送门二、为什么要
动态
调用
WebService
接口?一般在C#开发中
调用
webService
服务中的接口都是通过引用过来就行
调用
的,步骤如下:1.找到引用,右击添加服务引用,找到高级,添加...
C#
110,538
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章