博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.net动态调用wsdl soap提交
阅读量:7040 次
发布时间:2019-06-28

本文共 1650 字,大约阅读时间需要 5 分钟。

   因为我自己原来没有动态调用过wsdl,所有调用期间找了很多例子,浪费了很多时间,现在项目结束把这个动态调用方法放上来,以供参考

 

string eg= "https://xxxxxxxxx/scan?wsdl";//需要调用方法的地址

string url= "https://xxxxxxxxx/scan“;

 String str=  "hksfafasf";//方法所需参数

WebServiceAgent ag = new WebServiceAgent(url);

//调用方法获取输出结果 

string resultStr = (string)ag.Invoke("scanPay", str); //scanPay方法名称

public class WebServiceAgent

    {

        private object agent;
        private Type agentType;
        private const string CODE_NAMESPACE = "Beyondbit.WebServiceAgent.Dynamic";
        public WebServiceAgent(string url)
        {
            XmlTextReader reader = new XmlTextReader(url + "?wsdl");
            //创建和格式化 WSDL 文档    
            ServiceDescription sd = ServiceDescription.Read(reader);
            //创建客户端代理代理类    
            ServiceDescriptionImporter sdi = new ServiceDescriptionImporter();
            sdi.AddServiceDescription(sd, null, null);
            //使用 CodeDom 编译客户端代理类    
            CodeNamespace cn = new CodeNamespace(CODE_NAMESPACE);
            CodeCompileUnit ccu = new CodeCompileUnit();
            ccu.Namespaces.Add(cn);
            sdi.Import(cn, ccu);
            CSharpCodeProvider icc = new CSharpCodeProvider();
            CompilerParameters cp = new CompilerParameters(new string[] { "System.Data.dll" }); // 在此添加所缺的dll,比如"System.Data.dll"  
            CompilerResults cr = icc.CompileAssemblyFromDom(cp, ccu);
            agentType = cr.CompiledAssembly.GetTypes()[0];
            agent = Activator.CreateInstance(agentType);
        }
        public object Invoke(string methodName, params object[] args)
        {
            MethodInfo mi = agentType.GetMethod(methodName);
            return this.Invoke(mi, args);
        }
        public object Invoke(MethodInfo method, params object[] args)
        {
            return method.Invoke(agent, args);
        }
        public MethodInfo[] Methods
        {
            get
            {
                return agentType.GetMethods();
            }
        }
    }  

 

总结:接口调通之后感觉也是很简单,但是之前是真的不知道发生了什么,记录一下

转载于:https://www.cnblogs.com/zttb/p/9210418.html

你可能感兴趣的文章
信息化技术让智慧城市感知增强
查看>>
AI 从业者该如何选择深度学习开源框架丨硬创公开课
查看>>
OA产品:市场需求推动OA发展
查看>>
史上最大 DDoS 攻击曝光,没想到还有这么多人拿“12345”当密码
查看>>
mysql定时备份
查看>>
《算法设计编程实验:大学程序设计课程与竞赛训练教材》——1.1 机理分析法的实验范例...
查看>>
移动互联网下的服务转型――10086APP成长的探索
查看>>
对呼叫中心外呼业务系统的技术改进
查看>>
视频监控在三大智能领域应用分析
查看>>
微软第三财季净利38亿美元 同比下滑25%
查看>>
三星忘更新域名 数百万设备面临攻击风险
查看>>
部运输服务司“两学一做”关注城市智慧交通系统建设
查看>>
立澜光伏项目提交虚假材料被叫停发电
查看>>
微软SaaS应用拳头产品Dynamics 365售价被泄露
查看>>
中国好DC(数据中心)
查看>>
推动网络流量全面可视化 Gigamon在行动
查看>>
大数据时代继续教育深化发展的机遇与挑战分析
查看>>
黑客“纵横”全球金融系统 中国公司被盯上
查看>>
“光伏贷”推动分布式光伏进入百姓家
查看>>
探究电气设计系统中计算机的应用
查看>>