动态调用WCF服务[转]
生活随笔
收集整理的這篇文章主要介紹了
动态调用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
轉載于:https://www.cnblogs.com/wiseant/archive/2010/07/29/1787599.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的动态调用WCF服务[转]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 俞敏洪:新东方没做过亏心事 做过坏事的企
- 下一篇: 把ASP应用中的Session传递给as