精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

WCF獲取服務元數據經驗總結

開發 開發工具
WCF獲取服務元數據中包含有許多個終結點,客戶端與服務端可以通過這個終結點來交換信息。在這篇文章中就介紹了一些相關的實現方法,希望對大家有所幫助。

WCF框架是目前比較受歡迎的一款由微軟研發的開發框架。它的出現實現了跨平臺的網絡解決方案。在這篇文章中就為大家介紹有關WCF獲取服務元數據的相關方法。#t#

所謂WCF獲取服務元數據(Metadata),歸根結點,實際上就是獲取服務的終結點(Endpoint)的信息,這是服務公開在外的數據信息,包括Address、Binding與Contract,也就是所謂的ABCs。

WCF獲取服務元數據可能包含多個終結點,每個終結點相當于是通信的入口,客戶端和服務端通過終結點交換信息。

因而,如果能夠獲取終結點的詳細信息,有助于我們更好地剖析服務的定義、內容與執行方式。

服務有兩種方案可以發布自己的元數據。一種是基于HTTP-GET協議提供元數據;另一種則為元數據交換方式,它往往使用一個專門的終結點,稱之為元數據交換終結點。元數據交換終結點與其它終結點相似,仍然包含了地址、綁定與契約,但是使用的服務契約為WCF提供的接口IMetadataExchange。

實際上,這兩種發布元數據的方式代表了它使用了兩種不同的WCF獲取服務元數據標準協議,前者為HTTP/GET請求,后者為WS-MetadataExchange(MEX)。在WCF,以MetadataExchangeClientMode枚舉類型表示這兩種元數據交換模式:

  1. public enum Metadata
    ExchangeClientMode  
  2. {  
  3. MetadataExchange,  
  4. HttpGet  
  5. }  

WCF為終結點定義了一個專門的ServiceEndpoint類,被定義在System.ServiceModel.Description命名空間中。ServiceEndpoint類包含了EndpointAddress,Binding,ContractDescription三個類型的屬性,分別對應Endpoint的Address,Binding,Contract。

要WCF獲取服務元數據的終結點,可以通過抽象類MetadataImporter獲取,類的定義如下:

  1. public abstract class 
    MetadataImporter  
  2. {  
  3. public abstract Collection
    <ContractDescription> 
    ImportAllContracts();  
  4. public abstract Service
    EndpointCollection
     ImportAllEndpoints();  
  5. //其它方法略;  

 

在類中,最重要的一個方法是ImportAllEndpoints(),它能夠獲取服務的所有終結點,并返回一個ServiceEndpointCollection類型的對象。該類型為一個終結點集合,可以通過調用ServiceEndpointCollection的Find()方法或FindAll()方法,找到符合條件的一個或多個終結點。它的定義如下:

  1. public class ServiceEndpointCollection
     : Collection
    <ServiceEndpoint> 
  2. {  
  3. public ServiceEndpoint Find
    (Type contractType);  
  4. public ServiceEndpoint Find(Uri address);  
  5. public Collection<ServiceEndpoint> 
    FindAll(Type contractType);  
  6. //其它成員略  

 

我們可以通過契約類型,或者服務契約的地址,查找符合條件的終結點。

MetadataImporter類只是一個抽象類,如果要獲取WSDL元數據,還會需要使用繼承它的子類型WsdlImporter:

  1. public class WsdlImporter :
     MetadataImporter  
  2. {  
  3. public WsdlImporter(MetadataSet
     metadata);  
  4. public Collection<Binding>
     ImportAllBindings();  
  5. public override Collection
    <ContractDescription> ImportAllContracts();  
  6. public override ServiceEndpoint
    Collection ImportAllEndpoints();  
  7. public ServiceEndpointCollection 
    ImportEndpoints(Binding wsdlBinding);  
  8. //其它成員略;  

 

如果要使用WsdlImporter,需要為其構造函數傳遞一個MetadataSet類型的對象。而MetadataSet類型的對象則可以通過MetadataExchangeClient類的GetMetadata()方法獲得。MetadataExchangeClient類的定義如下所示:

  1. public class MetadataExchangeClient  
  2. {  
  3. public MetadataExchangeClient();  
  4. public MetadataExchangeClient
    (Binding mexBinding);  
  5. public MetadataExchangeClient
    (EndpointAddress address);  
  6. public MetadataExchangeClient
    (string endpointConfigurationName);  
  7. public MetadataExchangeClient
    (Uri address, MetadataExchangeClientMode mode);  
  8. public MetadataSet GetMetadata();  
  9. public MetadataSet GetMetadata
    (EndpointAddress address);  
  10. public MetadataSet GetMetadata
    (Uri address, MetadataExchangeClientMode mode);  
  11. //其它方法略;  

 

假定服務公開的元數據地址為http://localhost:8001/IMyService?wsdl,則WCF獲取服務元數據的方法如下:

  1. string mexAddress = “http
    ://localhost:8001/IMyService?wsdl”;  
  2. BasicHttpBinding binding = new BasicHttpBinding();  
  3. MetadataExchangeClient mexClient = 
    new MetadataExchangeClient(binding);  
  4. MetadataSet metadata = mexClient.
    GetMetadata(new Uri(mexAddress), 
    MetadataExchangeClientMode.HttpGet);  
  5. MetadataImporter importer = new
     WsdlImporter(metadata);  
  6. ServiceEndpointCollection endpoints = 
    importer.ImportAllEndpoints(); 

注意,如果是HttpGet模式,則元數據地址的后綴必須為?wsdl。由于我們在調用MetadataExchangeClient的GetMetadata()方法時,傳遞的MetadataExchangeClientMode枚舉參數值為HttpGet,因此獲取的為基于HTTP-GET的元數據。

如果服務使用的協議為HTTP或者HTTPS,則可能使用元數據交換終結點,也可能為Http-Get模式。此時,我們可以先獲取元數據交換終結點,如果沒有找到,再獲取基于HTTP-GET的終結點:

  1. string mexAddress = 
    “http://localhost:8001/IMyService?wsdl”;  
  2. BasicHttpBinding binding = 
    new BasicHttpBinding();  
  3. MetadataExchangeClient mexClient = 
    new MetadataExchangeClient(binding);  
  4. MetadataSet metadata = mexClient
    .GetMetadata(new EndpointAddress(mexAddress));  
  5. MetadataImporter importer = 
    new WsdlImporter(metadata);  
  6. ServiceEndpointCollection endpoints = 
    importer.ImportAllEndpoints();  
  7. if (endpoints == null)  
  8. {  
  9. string httpGetAddress = mexAddress;  
  10. if (!mexAddress.EndsWith(“?wsdl”) )  
  11. {  
  12. httpGetAddress += “?wsdl”;  
  13. }  
  14. BasicHttpBinding binding =
     
    new BasicHttpBinding();  
  15. MetadataExchangeClient mexClient =
     
    new MetadataExchangeClient(binding);  
  16. MetadataSet metadata = mexClient.
    GetMetadata(new Uri(mexAddress), 
    MetadataExchangeClientMode.HttpGet);  
  17. MetadataImporter importer =
     
    new WsdlImporter(metadata);  
  18. endpoints = importer.ImportAllEndpoints();  

 

在獲得ServiceEndpointCollection集合對象后,就可以針對每個ServiceEndpoint獲取終結點的Address、Binding、Contract的信息,如下所示:

  1. foreach (ServiceEndpoint endpoint
     in endpoints)  
  2. {  
  3. Console.WriteLine(“Endpoint Name 
    is {0}”, endpoint.Name);  
  4. Console.WriteLine(“Address is {0}”, 
    endpoint.Address.Uri.AbsoluteUri);  
  5. Console.WriteLine(“Binding is {0}”, 
    endpoint.Binding.GetType().ToString());  
  6. Console.WriteLine(“Address is {0}”, 
    endpoint.Contract.Name);  
  7. Console.WriteLine();  

通過以上介紹的類,采用相似的途徑,還可以實現更多的WCF獲取服務元數據,例如服務契約、回調契約、基地址、地址、綁定等信息。
 

責任編輯:曹凱 來源: 博客園
相關推薦

2009-12-22 18:36:17

WCF知識結構

2009-10-15 09:27:00

2010-03-19 14:03:34

云計算

2009-09-29 16:32:11

OJB Hiberna

2009-08-19 09:24:43

AJAX引擎經驗總結

2009-09-16 17:13:54

學習Linq

2010-04-20 10:41:49

Oracle數據庫

2009-12-25 15:58:37

WPF數據處理

2009-12-22 16:14:01

WCF服務元數據

2009-09-25 17:26:55

使用Hibernate

2009-09-27 14:53:38

Hibernate S

2010-01-27 18:12:14

Android dia

2010-01-26 13:28:11

Android開發要點

2013-12-18 15:54:21

2009-12-24 16:46:03

WPF性能優化

2010-03-08 15:12:27

Python語言

2010-06-13 13:44:07

UML學習筆記

2011-07-21 13:40:17

java

2009-08-13 18:13:27

C#學習經驗

2010-07-16 09:14:49

Perl模式
點贊
收藏

51CTO技術棧公眾號

免费人成在线观看视频播放| 国产精品久久久久久久久免费看| 中文字幕avav| 电影k8一区二区三区久久| 99久久精品国产导航| 日本乱人伦a精品| 国产日产精品一区二区三区的介绍| 超碰国产精品一区二页| 午夜久久电影网| 色噜噜狠狠一区二区三区| 99热这里只有精| 久久久xxx| 不卡伊人av在线播放| 成人精品在线观看视频| 成人国产精品久久| 欧美日韩国产中文字幕 | 欧美激情按摩在线| 中日韩精品一区二区三区| 天天综合91| 黑人精品xxx一区| 秋霞在线一区二区| 九九九伊在人线综合| 国产精品一区二区久久不卡| 日本一区二区在线免费播放| 高h视频免费观看| 精品久久久久久久| 亚洲精品国产精品国自产在线| 国产精品一区二区羞羞答答| sqte在线播放| 亚洲欧美日韩综合aⅴ视频| 欧美xxxx黑人又粗又长密月 | 美女一区二区三区| 97久久精品在线| 国产精品丝袜一区二区| 韩日一区二区三区| 日韩二区三区在线| www.四虎在线| 国产高清日韩| 欧美日韩精品二区第二页| 99视频在线免费播放| 操你啦视频在线| 国产欧美日韩在线观看| 精品视频在线观看| 俄罗斯嫩小性bbwbbw| 国产一区在线看| 国产一区在线播放| 中文字幕在线视频第一页| 美女网站久久| 日本国产一区二区三区| 久久青青草视频| 亚洲人成毛片在线播放女女| 亚洲欧美bt| 国产日韩精品一区二区浪潮av| 亚洲一区二区三区毛片| 一级片免费网站| 免费看日韩精品| 国产精品麻豆va在线播放| 久久久久久不卡| 日日摸夜夜添夜夜添亚洲女人| 欧美在线xxx| 精品国产xxx| 爽爽淫人综合网网站| 国产99久久精品一区二区| 国产精品久久久久久人| 久久综合伊人| 国产精品久久久久秋霞鲁丝| 国产成人精品亚洲| 免费成人美女在线观看.| 国产精品情侣自拍| 亚洲中文一区二区三区| 国模少妇一区二区三区| 亚洲在线观看视频网站| 国产后入清纯学生妹| 国产91精品在线观看| 成人黄动漫网站免费| 丰满少妇被猛烈进入| 成人av在线影院| 麻豆av福利av久久av| 国产小视频在线播放| 国产精品天天摸av网| 手机福利在线视频| 日韩av官网| 日韩欧美第一页| 日本xxxx黄色| 玖玖玖视频精品| 亚洲黄在线观看| 欧美美女一区二区三区| 亚洲熟妇av一区二区三区| 欧美va在线观看| 欧美卡1卡2卡| 国产香蕉精品视频| 九九热爱视频精品视频| 久久精品色欧美aⅴ一区二区| 国产日韩欧美在线观看视频| 在线日韩电影| 国产精品欧美一区二区| 亚洲成人一二三区| 93久久精品日日躁夜夜躁欧美| 日本一区高清不卡| 亚洲夜夜综合| 欧美午夜精品伦理| 天堂在线一区二区三区| 日韩有码一区| 久久久www成人免费精品张筱雨| 国产一级免费观看| 免费看欧美美女黄的网站| 伊人久久大香线蕉综合四虎小说| 日韩精品在线播放| 91麻豆精品成人一区二区| 99精品99| 亚洲tv在线观看| 狠狠色伊人亚洲综合网站l| 亚洲男女毛片无遮挡| 99精品视频播放| 久久av网站| 国产亚洲xxx| 黄色片视频网站| 国产精品一区二区91| 少妇精品久久久久久久久久| 大香伊人久久| 91精品国产色综合久久不卡电影| jizz日本免费| 欧美私人啪啪vps| 国产欧美日韩中文字幕在线| av女名字大全列表| 亚洲最快最全在线视频| 午夜剧场在线免费观看| 国产精品免费大片| 欧美伊久线香蕉线新在线| 亚洲国产精品久久久久久6q| 中文字幕一区二区三区精华液 | 久久青青草综合| 91国内在线| 欧美精品三级在线观看| 免费看黄色三级| 麻豆精品91| 精品乱码一区二区三区| 污污片在线免费视频| 在线电影国产精品| 成人三级视频在线观看| 日本伊人精品一区二区三区观看方式 | 亚洲欧美中文日韩v在线观看| 欧美日韩在线国产| 国产一区二区精品久久91| 亚洲欧洲免费无码| 99久久er| 色系列之999| 懂色av蜜臀av粉嫩av喷吹| 久久久久亚洲蜜桃| 久久精品免费网站| 国模吧精品视频| 国产高清在线不卡| 粉嫩av一区| 欧美伊人久久久久久午夜久久久久| www.色多多| 丝袜美腿高跟呻吟高潮一区| 欧美日韩综合久久| 日韩av大片站长工具| 亚洲视频综合网| 亚洲午夜在线播放| 中文字幕一区二区三区色视频| 在线免费视频一区| 婷婷激情图片久久| 亚洲伊人久久综合| 国模私拍视频在线播放| 亚洲二区中文字幕| 国产www在线| 欧美高清在线视频| www.com污| 欧美日韩福利| 精品麻豆av| www成人在线视频| 久久精品视频在线播放| 亚洲AV无码国产精品午夜字幕| 亚洲午夜免费电影| 精品人妻一区二区三区香蕉 | 99精品美女| 岛国视频一区免费观看| 黄色在线网站噜噜噜| 亚洲天天在线日亚洲洲精| 91精品视频免费在线观看 | 免费极品av一视觉盛宴| 麻豆成人入口| 国产精品视频网站| 免费在线看电影| 亚洲欧美国产高清va在线播| 中文字幕在线观看国产| 夜夜精品视频一区二区 | 亚洲精品一卡二卡| 国产黄色三级网站| 麻豆国产精品视频| av免费观看大全| 日韩在线二区| 精品卡一卡二| 国产精品igao视频网网址不卡日韩| 欧美国产日韩中文字幕在线| 久热av在线| 日韩一级黄色大片| 手机av免费观看| 亚洲毛片av在线| 先锋影音av在线| 岛国av在线一区| 91极品视频在线观看| 亚洲人人精品| 国产精品美女在线播放| 婷婷激情久久| 91黄在线观看| 黄色日韩网站| 欧美一性一乱一交一视频| 综合久久2o19| 色哟哟入口国产精品| 头脑特工队2在线播放| 91精品国产综合久久精品性色| 国内精品福利视频| 亚洲一区在线观看免费观看电影高清| 午夜精产品一区二区在线观看的| 粉嫩av一区二区三区粉嫩| 色一情一区二区| 久久久国产亚洲精品| 人人妻人人澡人人爽欧美一区| 久久日文中文字幕乱码| 欧美一区二区三区四区在线观看地址 | 香蕉视频在线看| 亚洲欧美精品在线| 无码精品黑人一区二区三区 | 美女日批在线观看| 麻豆精品在线看| 国产福利一区视频| 国产一区二区三区的电影| 成人午夜免费在线视频| 成人久久综合| 视频在线99| 欧美系列电影免费观看| 欧美日韩一区二区三区在线观看免 | 国产欧美一级| 久久手机在线视频| 欧美精品首页| 日本老太婆做爰视频| 香蕉综合视频| www.黄色网址.com| 久久久久久久久99精品大| 在线观看日本一区| 久久精品av| 中文有码久久| 99久久久国产精品美女| 一区二区三区国| 91九色精品国产一区二区| 一区二区三区四区五区精品 | 婷婷综合国产| 99porn视频在线| av日韩精品| 久久99精品久久久久久久青青日本| 国产一级成人av| 好吊色欧美一区二区三区四区| 开心激情综合| 欧美大香线蕉线伊人久久国产精品| 亚洲宅男一区| 特级西西444www大精品视频| 色天天久久综合婷婷女18| 中文字幕色一区二区| 亚洲精品在线观看91| 在线视频一二三区| 影音先锋亚洲精品| www.浪潮av.com| 日韩1区2区3区| 精品综合久久久久| 国产xxx精品视频大全| 国产精品麻豆入口| 国产视频一区二区在线| 亚洲天堂精品一区| 一区二区三区视频在线观看| 午夜影院在线看| 欧美在线你懂的| 国产理论片在线观看| 欧美本精品男人aⅴ天堂| 午夜影院免费视频| 一区二区三区视频免费在线观看| 午夜免费视频在线国产| 欧美日本在线视频中文字字幕| 24小时免费看片在线观看| 国产91九色视频| www.久久热| 久久久久九九九| 93在线视频精品免费观看| 国产尤物av一区二区三区| 国产情侣久久| 亚洲涩涩在线观看| 成人高清视频在线| 美女网站视频色| 亚洲国产色一区| 日本妇乱大交xxxxx| 日韩无一区二区| 黄色网址在线播放| 精品中文字幕乱| av在线不卡精品| 国产精品自拍首页| 日韩精品免费一区二区三区| 日韩一区二区高清视频| 青青青伊人色综合久久| 欧产日产国产精品98| 国产精品天美传媒沈樵| 成年人午夜视频| 欧美一二三区精品| 国内精品一区视频| 久久免费观看视频| 亚洲成人毛片| 日本一区二区三区免费观看| 国内视频精品| 岛国毛片在线播放| 2020国产精品自拍| 久久久久无码精品国产| 欧美日韩三级一区二区| 天堂a√中文在线| 欧美富婆性猛交| 动漫一区二区三区| 亚洲国产精品久久久久久女王| 99这里有精品| 蜜桃视频无码区在线观看| 国产精品欧美综合在线| 亚洲熟女综合色一区二区三区| 日韩欧美国产电影| 欧美边添边摸边做边爱免费| 情事1991在线| 网友自拍一区| 97成人在线免费视频| 国产91精品露脸国语对白| 免费看特级毛片| 欧美日韩五月天| 国产福利第一视频在线播放| 7m第一福利500精品视频| 99a精品视频在线观看| 97精品国产97久久久久久粉红| 青青青伊人色综合久久| 久久久久无码精品国产sm果冻| 精品毛片网大全| 日本国产在线观看| 九九热精品在线| 成人亚洲精品| 国产欧美综合一区| 国产精品自拍网站| 亚洲国产美女视频| 日韩精品一区二| 91精品久久久久久粉嫩| 97人人模人人爽人人少妇| 欧美在线国产| 久久艹这里只有精品| 亚洲三级免费观看| 国产精品久久久久久久免费 | 欧美在线视频二区| 久热精品在线| 一级特黄曰皮片视频| 欧美亚洲动漫制服丝袜| av在线免费观看网站| 国产精品中文在线| 香蕉综合视频| 高清中文字幕mv的电影| 午夜国产不卡在线观看视频| 天堂在线视频观看| 国产97在线视频| 久久精品国产www456c0m| 91视频这里只有精品| 亚洲精品乱码久久久久久| 国产99久一区二区三区a片| 欧美大片在线影院| 秋霞蜜臀av久久电影网免费| 91国视频在线| 中文字幕精品在线不卡| 亚洲自拍偷拍另类| 欧美理论电影在线播放| 丁香婷婷成人| 国产精品69页| 亚洲欧洲日韩av| 蜜臀av免费在线观看| 热99精品里视频精品| 91中文字幕精品永久在线| 国产成人精品一区二区三区在线观看| 亚洲3atv精品一区二区三区| 激情综合闲人网| 亚洲va欧美va国产综合剧情| 亚洲黄色影院| 精品国产aaa| 日韩美女天天操| 成人勉费视频| 国产精品99久久久久久大便| 波多野结衣中文一区| 亚洲精品国产无码| 乱亲女秽乱长久久久| 日韩三级av| 久久精品一卡二卡| 欧美午夜激情视频| 成人在线观看亚洲| 蜜桃麻豆www久久国产精品| 韩国成人在线视频| 欧美三级午夜理伦| 欧美另类交人妖| 精品国产一区二区三区| 久久久无码人妻精品无码| 色8久久精品久久久久久蜜| 最近中文字幕免费mv2018在线| 欧美亚洲精品日韩|