客户端动态调用WCF服务中的方法

客户端调用wcf ,有时需要动态的调用服务端的WCF中的方法,本方法,反射wcf 的接口,动态调用接口中的方法。

主要为,动态绑定,反射动态调用。

public static object ExecuteMethod(string pUrl,string pMethodName, params object[] pParams) { EndpointAddress address = new EndpointAddress(pUrl); Binding bindinginstance = null; NetTcpBinding ws = new NetTcpBinding(); ws.MaxReceivedMessageSize = 20971520; ws.Security.Mode = SecurityMode.None; bindinginstance = ws; using (ChannelFactory channel = new ChannelFactory(bindinginstance,address)) { T instance = channel.CreateChannel(); using (instance as IDisposable) { try { Type type = typeof(T); MethodInfo mi = type.GetMethod(pMethodName); return mi.Invoke(instance, pParams); } catch (TimeoutException) { (instance as ICommunicationObject).Abort(); throw; } catch (CommunicationException) { (instance as ICommunicationObject).Abort(); throw; } catch (Exception vErr) { (instance as ICommunicationObject).Abort(); throw; } } } } 

本文使用的是nettcpbinding 绑定方式,可修改。

调用方法使用

ExecuteMethod("net.tcp://192.168.0.1:8001/mex", "Test", new object[] { "参数" })

你可能感兴趣的:(WCF)