zoukankan      html  css  js  c++  java
  • 动态调用WCF服务[转]

    原文地址:http://blog.csdn.net/castlooo/archive/2010/05/06/5562619.aspx

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

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

    public static object ExecuteMethod<T>(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<T> channel = new ChannelFactory<T>(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<IService>("net.tcp://192.168.0.1:8001/mex", "Test", new object[] { "参数" })


     另外还有一篇贴子可参考:http://hi.baidu.com/meback/blog/item/c140495447258e5d564e0006.html

  • 相关阅读:
    Java 时钟
    mybatis中的#和$的区别
    vuex数据管理-数据共享
    vuex数据管理-数据适配
    vue双向数据绑定原理
    基于VUE的SPA单页应用开发-加载性能篇
    vue2.0读书笔记3
    移动端软键盘收起监听
    移动端模态窗口的滚动和橡皮筋问题解决方案
    window.history的跳转实质-HTML5 history API 解析
  • 原文地址:https://www.cnblogs.com/wiseant/p/1787599.html
Copyright © 2011-2022 走看看