如何动态调用wcf方法

问题描述

silverlightwcf一般调用方法sc.GetDepartmentBySqlWhereAsync(sqlWhere);反射调用TypescType=typeof(ServiceClient);objectobj=Activator.CreateInstance(scType);//MethodInfomethod=scType.GetMethod("GetDepartmentBySqlWhereAsync",BindingFlags.Instance|BindingFlags.Public);这句总为null,试过多种BindingFlags组合,还是null,所以用下面的语句获得methodMethodInfo[]ms=scType.GetMethods();MethodInfomethod=null;for(inti=0;i<ms.Length;i++){if(ms[i].Name.Equals("GetDepartmentBySqlWhereAsync"))//sc中的方法名{method=ms[i];break;}}EventInfoevt=scType.GetEvent("GetDepartmentBySqlWhereCompleted",BindingFlags.NonPublic|BindingFlags.Instance|BindingFlags.Public);evt.AddEventHandler(obj,newEventHandler<GetDepartmentBySqlWhereCompletedEventArgs>(Sc_GetDepartmentBySqlWhereCompleted));//异步成功后的方法名method.Invoke(obj,newstring[]{sqlWhere});反射和一般的方法都可以调用成功,反射中”GetDepartmentBySqlWhereAsync“和“GetDepartmentBySqlWhereCompleted”可以用键值对做成动态的但是AddEventHandler无法弄一个通用的方法来调用其它方法。比如GetUserbySqlWhereAsync(sqlWhere);GetXXXXXAsync(sqlWhere)evt.AddEventHandler(obj,newEventHandler<GetUserbySqlWhereCompletedEventArgs>(Sc_GetUserbySqlWhereCompleted));evt.AddEventHandler(obj,newEventHandler<GetXXXXXCompletedEventArgs>(Sc_GetXXXXXCompleted));怎么解决呢?

解决方案

时间: 2024-08-02 07:25:21

如何动态调用wcf方法的相关文章

总结C#动态调用WCF接口的两种方法_C#教程

如何使用 1.第一种方式比较简单,而且也是大家喜欢的,因为不需要任何配置文件就可解决,只需知道服务契约接口和服务地址就可以调用. 2.使用Invoke的方式,但是需要在调用客户端配置WCF,配置后在Invoke类里封装服务契约接口即可. 客户端调用DEMO //第一种方式 string url = "http://localhost:3000/DoubleService.svc"; IDoubleService proxy = WcfInvokeFactory.CreateServic

通过java反射机制动态调用某方法的总结(推荐)_java

如下: public Object invokeMethod(String className, String methodName, Object[] args) throws Exception{ Class ownerClass = Class.forName(className); Object owner = ownerClass.newInstance(); Class[] argsClass = new Class[args.length]; for (int i = 0, j =

动态调用WCF服务

本文转载:http://www.cnblogs.com/wiseant/archive/2010/07/29/1787599.html 原文地址:http://blog.csdn.net/castlooo/archive/2010/05/06/5562619.aspx   客户端调用wcf ,有时需要动态的调用服务端的WCF中的方法,本方法,反射wcf 的接口,动态调用接口中的方法. 主要为,动态绑定,反射动态调用.   public static object ExecuteMethod<T>

.net 动态调用WCF 提供的参数不起作用 why????

问题描述 publicstaticobjectExecuteMethod<T>(stringpUrl,stringpMethodName,paramsobject[]pParams){EndpointAddressaddress=newEndpointAddress(pUrl);Bindingbindinginstance=null;BasicHttpBindingws=newBasicHttpBinding();ws.MaxReceivedMessageSize=20971520;ws.Se

Xcode中Objc动态调用方法同时避免警告的几个办法

我们在Xcode中使用objc写代码的时候往往会碰到动态调用方法的时候. 如果是静态调用这很常见,不会有任何问题: [self performSelector:@selector(method)]; 但如果method是运行时变化的值,则编译器就会发出警告: 简单来说,这是因为编译器在开启ARC后不知道该方法的返回值是什么,该如何处理,是标记为ns_returns_retained还是ns_returns_autoreleased. 在网上搜了一下有几种办法可以解决,首先如果动态调用的方法不返回

COM(VB/VBA/Script)利用服务标记调用WCF服务之三使用WSDL契约

前面我们介绍了使用MEX契约的服务标记在COM中调用WCF服务,这种方式是通过MEX终结点动态取得元 数据,使用起来是比较方便:但是有时服务的元数据中可能包含恶意用户可以利用的关于应用程序的敏感 信息,也就是说为了安全考虑有些服务可能不会通过MEX公布元数据信息.如果哦某些服务没有公布元数 据信息,用类型化有比较麻烦,针对这种情况我们该如何在COM中调用WCF服务呢?这时我们可以使用WSDL 契约来进行WCF服务的调用,使用这种方式和使用MEX类似,同样不需要进行类型的注册,信息都是通过动 态得

COM(VB/VBA/Script)利用服务标记调用WCF服务之二使用MEX契约

第一步:创建WCF服务 上一篇我们使用类型化契约的服务标记在COM中调用WCF服务,不过这个有一 定的局限性,因为需要注册类型,所以需要.Net FrameWork,但是在很多情况下COM客户端所在的环境没有 .Net Framework,比如说在Excel中,需要调用一个WCF服务来计算某个单元格的值,而且这个Excel文件可 能分发到许多机器上,你总不能给每台机器都装一个.Net Framework,同时都去给它注册所需的类型吧. 针对这种场景,我们可以使用MEX契约的服务标记来动态得到服务

WCF基础教程之开篇:创建、测试和调用WCF

原文:WCF基础教程之开篇:创建.测试和调用WCF 一转眼,又半个月没有更新博客了.说实话,最近确实是有点忙.不过即使再忙忙,也要抽空来学习一些东西.最近用WCF比较多,就来跟大家分享一下关于WCF的知识吧!为了让大家都能看懂,照顾一些没有学过WCF的原有,就从最基础的东西写起,希望大家可以体谅.  一.创建一个简单的WCF服务   打开VS2013,新建Silverlight项目,名字自己随便起,并创建Web站点,创建完项目后,我们在Web项目中添加一个WCF服务,名字输入UserServic

C# 动态调用WebService

原文:C# 动态调用WebService 动态调用webservice,就可以不用添加web引用了,上线的话也只是需要改一下wsdl地址就可以了  1.动态调用的方法:  C#代码    /// <summary>           ///  动态webservice调用           /// </summary>           /// <returns>string</returns>             public string ws