這不是一篇教你了解WebService的博文,也不是對(duì)WebService的深入理解, 這是一篇教你在開(kāi)發(fā)過(guò)程中,如果動(dòng)態(tài)的調(diào)用WebService一個(gè)方法.
創(chuàng)新互聯(lián)公司長(zhǎng)期為上千客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為葉縣企業(yè)提供專(zhuān)業(yè)的成都做網(wǎng)站、網(wǎng)站建設(shè),葉縣網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
1 : 在項(xiàng)目中新建添加服務(wù)引用
2 : 輸入引用服務(wù)器的地址
然后我們的程序集下就會(huì)多出剛才新建的Service 引用相關(guān)的文件引用.
然后我們就可以直接在代碼中調(diào)用ServiceReference1 , 就可以了,在這里就不在繼續(xù)的詳細(xì)做解釋說(shuō)明了,我們還是回到主題,如何減去這些步驟,因?yàn)檫@樣的方式添加引用,1 : 不好擴(kuò)展, 2 : 比較繁瑣
一 : 在項(xiàng)目中右鍵選擇新建
然后我們修改Component類(lèi)本部.
我們添加完成之后,Component類(lèi)內(nèi)部默認(rèn)為:
public partial class Component1 : Component { public Component1() { InitializeComponent(); } public Component1(IContainer container) { container .Add(this ); InitializeComponent(); } }
在此我們需要做一些修改.
首先在項(xiàng)目中添加WebService的引用.
然后將Component類(lèi) 繼承自 SoapHttpClientProtocol
至此將Component類(lèi)改為 :
[ WebServiceBinding (Namespace = "http://tempuri.org/" )] public partial class Component1 : SoapHttpClientProtocol { public Component1() { InitializeComponent(); } public Component1(IContainer container) { container . Add(this ); InitializeComponent(); } }
SoapHttpClientProtocol SoapHttpClientProtocol類(lèi)可以直接訪(fǎng)問(wèn)指定的webService的指定方法
若要與 XML Web services 通信,請(qǐng)為要調(diào)用的 XML Web services 創(chuàng)建一個(gè)間接或直接從 WebClientProtocol 派生的代理類(lèi)。 可以不用手動(dòng)創(chuàng)建代理類(lèi),而使用 Web 服務(wù)描述語(yǔ)言工具 (Wsdl.exe) 為給定 XML Web services 的服務(wù)說(shuō)明創(chuàng)建代理類(lèi)。 當(dāng)為 SOAP 協(xié)議生成代理類(lèi)時(shí),對(duì) XML Web services 方法的同步調(diào)用通過(guò) Invoke 方法進(jìn)行,而異步調(diào)用通過(guò)BeginInvoke 方法和 EndInvoke 方法進(jìn)行。
然后在配置文件中寫(xiě)入我們所要引用的服務(wù)器鏈接地址 :
<add key="ServiceAddress" value="http://localhost:7340/CourseMakerService.asmx" />
在我們添加的Conponent Class 構(gòu)造中調(diào)用服務(wù)器鏈接地址
public Component1( string serviceUrl) { if (serviceUrl. Equals( "UpdateServiceAddress" )) base .Url = ConfigurationManager . AppSettings["UpdateServiceAddress" ]; else base .Url = ConfigurationManager . AppSettings["ServiceAddress" ]; }
然后當(dāng)我們想要調(diào)用WebService中的方法時(shí),只需要在Component1類(lèi)中寫(xiě).
如我的調(diào)用方式 :
[ WebServiceBinding(Namespace = "http://tempuri.org/" )] public class OffLineLearingClient : SoapHttpClientProtocol { public OffLineLearingClient( string serviceUrl) { if (serviceUrl. Equals( "UpdateServiceAddress" )) base .Url = ConfigurationManager . AppSettings["UpdateServiceAddress" ]; else base .Url = ConfigurationManager . AppSettings["ServiceAddress" ]; } public OffLineLearingClient() { base .Url = ConfigurationManager . AppSettings["ServiceAddress" ]; } [ SoapDocumentMethod ] public YHBJUser GetUser( YHBJUser user) { return base . Invoke("GetUser" , new object [] { user })[0 ] as YHBJUser ; } [ SoapDocumentMethod ] public List < YHBJClass> GetTrainings11( string userId) { return base . Invoke("GetTrainings11" , new object [] { userId })[0 ] as List <YHBJClass > ; }
這樣我們就可以動(dòng)態(tài)的實(shí)現(xiàn)如果調(diào)用WebService了.
分享題目:.NET動(dòng)態(tài)調(diào)用WebService
新聞來(lái)源:http://aaarwkj.com/article46/gdsceg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、動(dòng)態(tài)網(wǎng)站、用戶(hù)體驗(yàn)、App開(kāi)發(fā)、軟件開(kāi)發(fā)、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)