成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

WCF元數據獲取方式技巧分享

開發 開發工具
WCF元數據的獲取方法多種,比如利用WS-MEX的方式來實現。或者還可以利用我們今天為大家介紹的這種HTTP-GET的實現方式。

我們知道,在WCF中,我們可以通過一種叫做WS-MEX方式的方式來進行WCF元數據的發布。那么今天我們就會為大家詳細介紹一下另外一種叫做HTTP-GET的方式來幫助我們實現WCF元數據的發布。#t#

現在我們來是實現基于HTTP-GET的元數據獲取方式。既然服務端采用了基于HTTP-GET的元數據發布方式,那么就意味著我們可以通過簡單的HTTP請求的方式獲取相應的元數據資源。

同樣是基于上面的例子,仔細的讀者相信已經看到了,在計算服務的配置文件中,除了為服務添加MEX終結點之外,還通過ServiceMetadataBehavior開啟了基于HTTP-GET的元數據發布方式,并將元數據發布地址指定為:http://127.0.0.1:3721/calculatorservice/metadata。

下面的代碼實現了相應的WCF元數據獲取,其中我通過指定目標地址創建了一個HttpWebRequest對象,并通過該對象向元數據的發布地址發送請求。獲取的元數據將以HttpWebResponse的形式返回,由于獲取的元數據實際上是一個WSDL文檔,所以我們可以通過ServiceDescription的Read方法直接讀取生成一個ServiceDescription對象,并最終通過MetadataSection的靜態方法CreateFromServiceDescription將其轉換成一個MetadataSection對象。該MetadataSection對象被最終添加到創建的MetadataSet中,并被寫入一個XML文件。

  1. using System.Diagnostics;   
  2. using System.Net;   
  3. using System.ServiceModel.Description;   
  4. using System.Xml;   
  5. using System.Text;   
  6. namespace Artech.MetataRetrieval   
  7. {   
  8. class Program   
  9. {   
  10. static void Main(string[] args)   
  11. {   
  12. MetadataSet metadata = new MetadataSet();   
  13. HttpWebRequest request = (HttpWebRequest)WebRequest.Create
    ("http://127.0.0.1:3721/calculatorservice/metadata"); 
    request.Method = "Get";   
  14. HttpWebResponse response = (HttpWebResponse)request.GetResponse();   
  15. using (XmlReader reader = XmlDictionaryReader.CreateTextReader
    (response.GetResponseStream(), new XmlDictionaryReaderQuotas()))   
  16. {   
  17. System.Web.Services.Description.ServiceDescription serviceDesc = 
    System.Web.Services.Description.ServiceDescription.Read(reader);   
  18. metadata.MetadataSections.Add(MetadataSection.
    CreateFromServiceDescription(serviceDesc));   
  19. }   
  20. using (XmlWriter writer = new XmlTextWriter
    ("metadata.xml", Encoding.UTF8))   
  21. {   
  22. metadata.WriteTo(writer);   
  23. }   
  24. Process.Start("metadata.xml");   
  25. }   
  26. }   

當上面的應用程序成功執行,包含獲取的WCF元數據的XML將會通過IE打開。通過兩種方式獲取的元數據本質上是相同的,不過可能細心的讀者已經發現了:與上面的例子(WS-MEX)獲取的MetadataSet不同,通過HTTP-GET獲取的MetadataSet僅僅包含一個元數據方言(Dialect)為WSDL的MetadataSection。這是因為,前面的例子實際上將WSDL中引用(通過終結點地址或者資源地址)的內容都生成了相應的MetadataSection,在這里由于篇幅所限,并沒有做這些工作。

責任編輯:曹凱 來源: CSDN
相關推薦

2010-03-02 10:50:57

WCF元數據交換

2010-02-22 17:21:02

WCF消息交換

2010-02-22 17:58:06

WCF異步上傳

2010-03-01 13:06:49

WCF繼承

2009-12-21 16:37:41

WCF獲取服務元數據

2010-02-24 11:22:04

WCF方法重載

2010-02-25 15:25:19

WCF通道

2009-12-22 19:00:08

WCF回調

2010-02-22 15:20:54

WCF WS-Disc

2010-02-23 16:46:47

WCF并發能力

2009-11-09 17:30:20

WCF元數據

2010-02-25 10:52:29

WCF響應服務

2010-02-23 13:03:34

WCF序列化

2010-02-26 10:46:12

WCF行為擴展

2010-03-01 09:48:23

WCF會話服務

2010-03-01 15:40:04

WCF實例停用

2010-02-25 18:04:02

WCF IIS宿主

2009-12-22 16:14:01

WCF服務元數據

2010-02-22 11:02:06

WCF元數據

2010-03-01 17:52:03

WCF選擇綁定
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩一区二区在线播放 | 欧美精品一区二区三区在线播放 | 97伦理电影| 国产在线视频一区 | 夜夜爆操| 一区二区三区成人 | 一区二区在线 | 天天操天天射天天舔 | 亚洲成人第一页 | www.亚洲视频 | 天天玩天天干天天操 | 一区二区三区高清不卡 | 精品伊人久久 | 久久国产精品网站 | 超碰人人在线 | 女同av亚洲女人天堂 | 91免费小视频 | 亚洲精品一区二区三区中文字幕 | 日韩在线精品视频 | 日本特黄a级高清免费大片 国产精品久久性 | 国产精品久久久一区二区三区 | 青青久草 | 一级毛片大全免费播放 | 免费激情av | 香蕉91| 人人色视频 | 日韩在线h| www.狠狠干 | 欧美三级在线 | 日韩二三区 | 男人亚洲天堂 | 一区二区三区免费 | av激情在线| 国产精品视频久久久久 | 色永久| 天堂在线www | 欧美一级欧美一级在线播放 | 天天曰夜夜操 | 国产一区中文字幕 | 成人在线 | 国产亚洲一区二区三区在线观看 |