日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
演示WCF契約查詢ConsoleApplication應用實例

WCF還是比較常用的,于是我研究了一下WCF契約查詢,在這里拿出來和大家分享一下,希望對大家有用。當我們拿到一個服務地址的時候該如何知道這個服務所提供的服務呢?如果是您自己開發(fā)的Service,這一點或許不需要興師動眾,但是如果是別人開發(fā)的服務,那么了解服務中的Endpoint將顯得格外重要,本文將利用對[WCF]繼承中所構建的服務代碼進行分析。

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

打開其程序代碼添加一個WCF契約查詢ConsoleApplication應用程序,新建程序,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 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++; } } } } 

這個項目我們不需要Add ServiceReference,因為我們只需分析那個“地址”所提供給我們的究竟是什么樣的服務,而不是要去使用服務中的WCF契約查詢


當前名稱:演示WCF契約查詢ConsoleApplication應用實例
網站路徑:http://www.5511xx.com/article/djihcdd.html