精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产精品精品视频| 播放一区二区| 日韩欧美四区| 国产精品久久久久久久久果冻传媒| 欧美成人黑人xx视频免费观看| 99福利在线观看| 2021亚洲天堂| 伊人久久大香| 亚洲国产精品高清| 国产精品96久久久久久又黄又硬| www国产视频| 性欧美猛交videos| 婷婷亚洲五月| 欧美日韩一区成人| 婷婷亚洲婷婷综合色香五月| 国产乱国产乱老熟| 五月激激激综合网色播| 欧美日韩高清一区二区三区| 日韩午夜视频在线观看| 黄瓜视频在线免费观看| 一区三区在线欧| 日韩欧美aⅴ综合网站发布| 精品欧美日韩在线| 奇米影视第四色777| 欧美顶级毛片在线播放| 欧美日韩精品国产| 欧美亚洲国产免费| 波多野结衣高清视频| 久久91麻豆精品一区| 色av一区二区| 亚洲欧美日韩精品综合在线观看| 中文字幕一级片| 婷婷综合久久| 国产一区二区三区在线观看视频 | 亚洲欧美日韩综合在线| 亚洲国产二区| 日韩aaa久久蜜桃av| 91在线免费视频观看| 97av在线影院| 日本xxxxxxxxx18| 欧美大胆成人| 国产精品国产三级国产专播品爱网| 精品欧美一区二区久久久伦| 亚洲精品97久久中文字幕| 一本久道久久久| 国产亚洲精品美女| 丰满圆润老女人hd| 玖玖精品在线| 亚洲午夜精品在线| 欧美一区二区三区在线播放| 中文字幕第31页| 美日韩精品视频| 久久精品在线视频| bl动漫在线观看| 国内自拍欧美| 欧美性做爰猛烈叫床潮| 久久久天堂国产精品| 深夜福利视频在线免费观看| 日韩视频精品在线观看| 久久人人爽人人爽人人片av高清| 少妇真人直播免费视频| 国产va免费精品观看精品| 偷拍日韩校园综合在线| 亚洲国产成人不卡| 99reav在线| 成人激情免费电影网址| 国产精品三级美女白浆呻吟| 久久精品www人人爽人人| 国产成人精品三级高清久久91| 91精品国产综合久久婷婷香蕉| 欧美在线观看成人| 亚洲小说区图片区都市| 亚洲在线视频网站| 翔田千里亚洲一二三区| 欧美三级理伦电影| 久久亚洲欧美国产精品乐播| 91青青草免费在线看| 少妇无套内谢久久久久| 99riav1国产精品视频| 欧美亚洲国产视频| 精品亚洲永久免费| 成人婷婷网色偷偷亚洲男人的天堂| 精品少妇一区二区三区日产乱码 | 国产高清中文字幕| 免费人成精品欧美精品| 欧美在线视频网| 欧美成人一二三区| 99riav国产精品| 国产精品中文字幕在线| 精品国产乱子伦| 99精品国产在热久久婷婷| 国产成人自拍视频在线观看| 国产美女三级无套内谢| 麻豆精品精品国产自在97香蕉 | 国产精品第一页在线观看| 99re66热这里只有精品8| 精品视频一区在线视频| 精品久久久久一区二区| 日韩精品一级| 91精品久久久久久久91蜜桃| 69亚洲乱人伦| 精品精品久久| 亚洲午夜精品视频| av激情在线观看| 亚洲xxx拳头交| 久久精品91久久久久久再现| 日本免费一二三区| 9色精品在线| 国产日韩欧美在线观看| 91好色先生tv| 黄色日韩网站视频| 亚洲在线免费视频| www.av在线.com| 国产a精品视频| 99久久久精品免费观看国产| www久久久久久| 久久女同互慰一区二区三区| 欧美一级爱爱视频| 国产精品66| 欧美疯狂做受xxxx富婆| 手机在线视频一区| 电影中文字幕一区二区| 亚洲免费人成在线视频观看| 性少妇bbw张开| 韩国av一区| 88xx成人精品| 99热这里只有精品在线| 成人福利在线看| 日本成人性视频| 日本高清成人vr专区| 亚洲人午夜精品天堂一二香蕉| 波多野结衣三级在线| 成人性生交大片免费网站| 色成人在线视频| 玖草视频在线观看| 成人羞羞动漫| 国产精品91在线| 久草在线免费福利资源| 国产三级久久久| 亚洲成人自拍视频| 捆绑调教日本一区二区三区| 色八戒一区二区三区| 亚洲精品视频大全| 亚洲精品麻豆| 国产精品久久久久久久久久久久冷| 色鬼7777久久| 黑人精品xxx一区| 亚洲中文字幕一区| 久久视频在线| 国产精品自拍网| 婷婷视频在线| 午夜精品福利一区二区三区av | 久蕉依人在线视频| 亚洲久久一区| 久久久福利视频| 国产无套粉嫩白浆在线2022年 | 看免费黄色录像| 国产亚洲在线| 91在线免费网站| 美女毛片在线看| 亚洲乱码一区二区三区在线观看| 日韩av在线第一页| 精品91福利视频| 亚洲日韩欧美视频| 久久久久久久国产精品毛片| 国产成人免费视频网站高清观看视频| 久热这里只精品99re8久 | 国产一区二区三区中文字幕| 综合网在线视频| 久久久久久久中文| 国产真实有声精品录音| 国产精品吴梦梦| 91精品久久| 欧美日韩视频在线观看一区二区三区 | 国产精品国产自产拍高清av王其| 日本55丰满熟妇厨房伦| 国产va免费精品观看精品视频 | 久久亚洲中文字幕无码| 成人乱码手机视频| 欧美大片免费看| 91福利在线观看视频| 亚洲精品乱码久久久久久久久 | 日韩欧美专区| 国产视频欧美视频| 中文字幕人妻一区二区在线视频| 亚洲视频一区二区在线| 亚州av综合色区无码一区| 蜜臂av日日欢夜夜爽一区| 男人草女人视频| 国产乱码精品一区二区三区亚洲人 | 99精品视频免费观看| 日韩精品伦理第一区| 日韩中文一区二区| 国产成人高清激情视频在线观看| 成人免费网站在线观看视频| 黑人精品一区| 亚洲天堂免费观看| 精品久久久无码中文字幕| 欧美色视频日本版| 精品国产精品国产精品| 99re这里只有精品6| 99久久99精品| 日韩福利电影在线观看| 日韩久久不卡| julia中文字幕一区二区99在线| 欧美成人免费播放| 国产免费视频在线| 亚洲а∨天堂久久精品9966 | 久久精品a一级国产免视看成人| 欧美一区二区在线免费观看| 亚洲女人久久久| 国内一区二区视频| 黄色一级大片在线观看| 国内黄色精品| 国产日韩欧美亚洲一区| 日韩激情电影免费看| 久久视频在线视频| www.香蕉视频| 欧美日韩成人一区| 黄瓜视频在线免费观看| 婷婷六月综合网| 中文字幕av免费在线观看| 国产精品护士白丝一区av| 免费一级做a爰片久久毛片潮| www.欧美亚洲| 国产精品乱码久久久久| 色97色成人| 91精品国产99久久久久久红楼| 国产经典一区| 国产精品国产亚洲伊人久久| 韩国久久久久久| 日本成人黄色片| 在线看片福利| 日韩色av导航| 欧美视频观看一区| 国产激情在线播放| 日韩麻豆第一页| 少妇高潮久久久| 在线观看亚洲精品视频| 欧美色图17p| 国产91精品欧美| 超碰中文字幕在线观看| 国产欧美成人| 国产免费一区二区视频| 国产精品自拍区| 欧美色欧美亚洲另类七区| 日韩精品社区| 欧美极品色图| 精品久久视频| 亚洲人成77777| japanese色系久久精品| 痴汉一区二区三区| 爱情电影社保片一区| 欧美综合国产精品久久丁香| 亚洲人成在线网站| 国产91在线播放| 久草在线视频网站| 国内精品免费午夜毛片| 天堂av在线| 国产精品99一区| 黄色精品视频网站| 亚洲一区中文字幕在线观看| 成人性生交大片免费看中文视频| 国产精品乱码| 亚洲瘦老头同性70tv| 水蜜桃一区二区三区| 亚洲成av人片乱码色午夜| 波多野结衣av一区二区全免费观看 | 午夜精品久久久久久不卡8050| 日本韩国欧美中文字幕| 欧洲精品视频在线观看| 91片黄在线观看喷潮| 日韩精品一区二区三区蜜臀| 中文无码av一区二区三区| 欧美日韩国产高清一区二区三区| 99视频在线观看免费| 亚洲精品国精品久久99热一| 国产三级漂亮女教师| 精品少妇一区二区三区| 国产视频网站在线| 久久成人精品视频| 美女露胸视频在线观看| 国产免费一区视频观看免费| 婷婷视频一区二区三区| 欧美激情www| 欧美三级在线| 欧美性受黑人性爽| 天天av综合| 精品人妻少妇一区二区| 红桃视频国产精品| 又色又爽又高潮免费视频国产| 国产乱国产乱300精品| 久久久久久蜜桃一区二区| 久久国产高清| 色偷偷中文字幕| 久久婷婷国产综合国色天香| 欧美做爰啪啪xxxⅹ性| 精品人伦一区二区三区蜜桃网站| 在线视频你懂得| 欧美少妇bbb| 后入内射欧美99二区视频| 精品人伦一区二区色婷婷| 国产在线日本| 久久免费高清视频| 亚洲高清影院| 日韩欧美精品久久| 亚洲国产婷婷| 免费看的av网站| 国产精品久久久久一区| 九九这里只有精品视频| 欧美日韩综合视频网址| www.狠狠干| 久久激情视频免费观看| 91成人抖音| 蜜桃在线一区二区三区精品| 欧美日韩精品免费观看视频完整| 亚洲77777| 国产乱国产乱300精品| 色综合99久久久无码国产精品| 国产精品区一区二区三| 人妻 日韩精品 中文字幕| 精品国产免费一区二区三区香蕉| 欧美激情黑人| 国产精品一二三在线| 自拍亚洲一区| 777久久久精品一区二区三区 | 少妇久久久久久久久久| 天天做天天摸天天爽国产一区| 性网爆门事件集合av| 欧美大胆在线视频| 国产精品毛片无码| 99精品一区二区三区的区别| 久久激情五月激情| 一本在线免费视频| 欧美性xxxxx极品少妇| 国产露出视频在线观看| 国产精国产精品| 国产成人精品免费视| 日韩一级免费在线观看| 久久毛片高清国产| 欧美一区免费看| 国产亚洲精品91在线| 亚洲第一会所001| 2019国产精品视频| 亚洲二区三区不卡| 青青草原播放器| 一区二区三区蜜桃网| 六月丁香综合网| 91国内精品久久| 中国av一区| 成人免费在线观看视频网站| 国产精品伦一区二区三级视频| 亚洲影视一区二区| 久久香蕉国产线看观看网| 精品中文在线| 91免费黄视频| 久久综合资源网| 欧美视频xxxx| 久久最新资源网| 国产极品模特精品一二| av黄色在线网站| 欧美国产在线观看| 一级片中文字幕| 91精品国产美女浴室洗澡无遮挡| 免费黄色在线看| 成人av免费看| 欧美一级久久| 亚洲无人区码一码二码三码| 中文字幕第一区综合| 国产一区二区麻豆| 欧美激情性做爰免费视频| 国产福利91精品一区二区| 中文字幕免费在线不卡| 石原莉奈在线亚洲三区| 中文字幕 日本| 在线免费不卡视频| 国产高清一区二区三区视频 | 手机看片1024日韩| 人人澡人人澡人人看欧美| 成人在线免费观看视频| 粗大的内捧猛烈进出视频| 国产精品污网站| 亚洲av无码专区在线| 热久久美女精品天天吊色| 亚洲精品91| 亚洲a v网站| 欧美成人精品1314www| 欧美美女日韩| 99久久99久久精品| 国产女人18毛片水真多成人如厕| www.黄色一片| 国产精品三级美女白浆呻吟| 亚洲黄色免费| 极品魔鬼身材女神啪啪精品| 亚洲激情久久久| 成人短视频软件网站大全app| www.爱色av.com| 亚洲另类一区二区| 国产福利在线观看| 国产一区在线免费|