专业网站建设品牌,18年专业建站经验,服务6000+客户--广州松河
免费热线:400-963-0016
微信咨询
|
联系我们
扫二维码关注公众号
网站首页
网站建设
短视频
网站推广
网站模板
客户案例
资讯动态
关于我们
网站首页
网站建设
短视频
网站推广
网站模板
客户案例
资讯动态
关于我们
位置:
广州松河
>
技术支持
> 动态调用webservice,不需要添加Web References
动态调用webservice,不需要添加Web References
来源:网络整理 时间:2023/2/14 0:19:55 共
3672
浏览
using System;
using System.Collections.Generic;
using System.Web;
using System.Net;
using System.IO;
using System.Web.Services.Description;
using System.CodeDom;
using Microsoft.CSharp;
using System.CodeDom.Compiler;
using System.Reflection;
namespace DeteUpdateProcess
{
class WebServiceGet
{/// < summary>
/// 动态调用web服务
/// < /summary>
/// < param name="url">WSDL服务地址< /param>
/// < param name="methodname">方法名< /param>
/// < param name="args">参数< /param>
/// < returns>< /returns>
public static object InvokeWebService(string url, string methodname, object[] args)
{
return WebServiceGet.InvokeWebService(url, null, methodname, args);
}
/// < summary>
/// 动态调用web服务
/// < /summary>
/// < param name="url">WSDL服务地址< /param>
/// < param name="classname">类名< /param>
/// < param name="methodname">方法名< /param>
/// < param name="args">参数< /param>
/// < returns>< /returns>
public static object InvokeWebService(string url, string classname, string methodname, object[] args)
{
string @namespace = "EnterpriseServerBase.WebService.DynamicWebCalling";
if ((classname == null) || (classname == ""))
{
classname = WebServiceGet.GetWsClassName(url);
}
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 (true == cr.Errors.HasErrors)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach (System.CodeDom.Compiler.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);
// PropertyInfo propertyInfo = type.GetProperty(propertyname);
//return propertyInfo.GetValue(obj, null);
}
catch (Exception ex)
{
throw new Exception(ex.InnerException.Message, new Exception(ex.InnerException.StackTrace));
}
}
private static string GetWsClassName(string wsUrl)
{
string[] parts = wsUrl.Split('/');
string[] pps = parts[parts.Length - 1].Split('.');
return pps[0];
}
}
}
调用时:
string url = args[0];//服务器地址
string[] strCkeck = new string[1];
strCkeck[0] = "8888";//产品ID
string strUpdate = WebServiceGet.InvokeWebService(url, "CheckUpdate", strCkeck).ToString();
版权说明:
本网站凡注明“广州松河 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
相关主题:
外贸网站开发公司益阳
外贸网站开发公司淄博
外贸网站开发公司沁阳
天津外贸网站搭建多少钱
外贸网站域名可以改吗吗
外贸网站建设制作报价模板
外贸网站开发公司银川
俄罗斯塑料颗粒外贸网站
外贸网站开发公司临沧
三亚外贸网站建设费用
·上一条:
软件开发流程
|
·下一条:
Oracle 增加修改删除字段与添加注释
同类资讯
一个家具类的电商网站要如何制作_CSS学习
理财规划师报考入口网址是什么_CSS学习
dividcd是什么服装品牌_CSS学习
为什么excel有竖虚线_CSS学习
租房小程序开发如何快速引流_CSS学习
sikenal充电宝怎么用_CSS学习
webcomponents是什么意思_CSS学习
vue怎样实现左滑出现两个按钮_CSS学习
驾驶证被别人捡去会怎么样_CSS学习
2010cad安装出现许可错误错误代码为110哪位高手能解决_CSS学习
up和wap是什么意思网络用语_CSS学习
有哪些权威的查看旅游统计数据的网站_CSS学习
宇宙中有哪些让人细思极恐的事_CSS学习
现在在智能电视上能用什么软件看中央台和卫视台的直播_CSS学习
华为nova5pro删除的短信如何恢复_CSS学习
说说这部细思级恐的电影少年派的奇幻漂流恐怖在哪_CSS学习
小王子的书名为什么是Le_CSS学习
经纬仪对中红点怎么调出来_CSS学习
拎包就能入住的精装房_CSS学习
手机输入法怎样更改键盘字体_CSS学习
资讯动态
公司新闻
互联网资讯
电商资讯
优化推广
技术支持
关于我们
公司简介
企业文化
服务项目
公司新闻
服务项目
网站建设
网站推广
品牌策划
移动应用
服务支持
在线咨询
服务流程
产品报价
售后服务
联系我们
代理加盟
付款方式
在线留言
联系方式
联系方式
电话:400-963-0016
邮箱:sales@itwy.com
QQ:250211130
微信:18520775521
Copyright © 广州松河信息科技有限公司 2005-2026 版权所有
粤ICP备16019765号
广州松河信息科技有限公司 版权所有
18520775521
QQ洽谈
sales@itwy.com