WCF契約查詢ConsoleApplication應(yīng)用實(shí)例分析

這篇文章主要介紹“WCF契約查詢ConsoleApplication應(yīng)用實(shí)例分析”,在日常操作中,相信很多人在WCF契約查詢ConsoleApplication應(yīng)用實(shí)例分析問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”WCF契約查詢ConsoleApplication應(yīng)用實(shí)例分析”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

創(chuàng)新互聯(lián)建站是專業(yè)的城關(guān)網(wǎng)站建設(shè)公司,城關(guān)接單;提供做網(wǎng)站、成都網(wǎng)站設(shè)計(jì),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行城關(guān)網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

當(dāng)我們拿到一個(gè)服務(wù)地址的時(shí)候該如何知道這個(gè)服務(wù)所提供的服務(wù)呢?如果是您自己開發(fā)的Service,這一點(diǎn)或許不需要興師動(dòng)眾,但是如果是別人開發(fā)的服務(wù),那么了解服務(wù)中的Endpoint將顯得格外重要,本文將利用對(duì)[WCF]繼承中所構(gòu)建的服務(wù)代碼進(jìn)行分析。

熟悉Web Service開發(fā)的程序員對(duì)添加服務(wù)引用應(yīng)該并不陌生。在創(chuàng)建某個(gè)服務(wù)的客戶端程序時(shí),并不需要從頭開始編寫客戶端的底層通信和交互代碼,可以通過輸入服務(wù)地址來添加服務(wù)來讓Visual Studio生成客戶端代理,這樣訪問服務(wù)就像訪問本地組件一樣,而不需要去關(guān)心通信的細(xì)節(jié)。如果創(chuàng)建的客戶端程序項(xiàng)目和服務(wù)程序項(xiàng)目處在同一個(gè)解決方案里(很多開發(fā)者在開發(fā)服務(wù)時(shí),也會(huì)同步開發(fā)客戶端程序),還可以通過Visual Studio來幫助我們“發(fā)現(xiàn)(Discovery)”服務(wù),并添加服務(wù)引用。

打開其程序代碼添加一個(gè)WCF契約查詢ConsoleApplication應(yīng)用程序,新建程序,WCF契約查詢代碼如下:

  1. using System;   

  2. using System.ServiceModel.Description;   

  3. namespace ContractQueriesClient   

  4. {   

  5. class Program   

  6. {   

  7. static void Main(string[] args)   

  8. {   

  9. // ?WSDL   

  10. //string mexAddress = "http://localhost:8080/ScientificCalculatorService?WSDL";   

  11. //MetadataExchangeClient MEXClient = new MetadataExchangeClient(new Uri(mexAddress), MetadataExchangeClientMode.HttpGet);   

  12. // /MEX string mexAddress = "http://localhost:8080/ScientificCalculatorService/mex";   

  13. MetadataExchangeClient MEXClient = new MetadataExchangeClient(new Uri(mexAddress), MetadataExchangeClientMode.MetadataExchange);   

  14. MetadataSet metadata = MEXClient.GetMetadata();   

  15. MetadataImporter importer = new WsdlImporter(metadata);   

  16. ServiceEndpointCollection endpoints = importer.ImportAllEndpoints();   

  17. int endpointCounter = 0;   

  18. foreach (ServiceEndpoint endpoint in endpoints)   

  19. { Console.WriteLine("endpoints[{0}].Name = {1}", endpointCounter, endpoint.Name);   

  20. Console.WriteLine("endpoints[{0}].Contract.Namespace = {1}", endpointCounter, endpoint.Contract.Namespace);   

  21. Console.WriteLine("endpoints[{0}].Contract.Name = {1}", endpointCounter, endpoint.Contract.Name); endpointCounter++; } 
    System.Collections.ObjectModel.Collection<ContractDescription> contracts = importer.ImportAllContracts();   

  22. int contractCounter = 0; foreach (ContractDescription contract in contracts)   

  23. { Console.WriteLine("contracts[{0}].Namespace = {1}", contractCounter, contract.Namespace);   

  24. Console.WriteLine("contracts[{0}].Name = {1}", contractCounter, contract.Name); contractCounter++; } } } } 

這個(gè)項(xiàng)目我們不需要Add ServiceReference,因?yàn)槲覀冎恍璺治瞿莻€(gè)“地址”所提供給我們的究竟是什么樣的服務(wù),而不是要去使用服務(wù)中的WCF契約查詢

到此,關(guān)于“WCF契約查詢ConsoleApplication應(yīng)用實(shí)例分析”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

網(wǎng)站標(biāo)題:WCF契約查詢ConsoleApplication應(yīng)用實(shí)例分析
標(biāo)題鏈接:http://muchs.cn/article30/jchspo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷網(wǎng)站收錄、企業(yè)網(wǎng)站制作、App設(shè)計(jì)企業(yè)建站、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司