日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
WCF元數(shù)據(jù)獲取方式技巧分享

我們知道,在WCF中,我們可以通過(guò)一種叫做WS-MEX方式的方式來(lái)進(jìn)行WCF元數(shù)據(jù)的發(fā)布。那么今天我們就會(huì)為大家詳細(xì)介紹一下另外一種叫做HTTP-GET的方式來(lái)幫助我們實(shí)現(xiàn)WCF元數(shù)據(jù)的發(fā)布。#t#

目前創(chuàng)新互聯(lián)建站已為成百上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、豐林網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

現(xiàn)在我們來(lái)是實(shí)現(xiàn)基于HTTP-GET的元數(shù)據(jù)獲取方式。既然服務(wù)端采用了基于HTTP-GET的元數(shù)據(jù)發(fā)布方式,那么就意味著我們可以通過(guò)簡(jiǎn)單的HTTP請(qǐng)求的方式獲取相應(yīng)的元數(shù)據(jù)資源。

同樣是基于上面的例子,仔細(xì)的讀者相信已經(jīng)看到了,在計(jì)算服務(wù)的配置文件中,除了為服務(wù)添加MEX終結(jié)點(diǎn)之外,還通過(guò)ServiceMetadataBehavior開啟了基于HTTP-GET的元數(shù)據(jù)發(fā)布方式,并將元數(shù)據(jù)發(fā)布地址指定為:http://127.0.0.1:3721/calculatorservice/metadata。

下面的代碼實(shí)現(xiàn)了相應(yīng)的WCF元數(shù)據(jù)獲取,其中我通過(guò)指定目標(biāo)地址創(chuàng)建了一個(gè)HttpWebRequest對(duì)象,并通過(guò)該對(duì)象向元數(shù)據(jù)的發(fā)布地址發(fā)送請(qǐng)求。獲取的元數(shù)據(jù)將以HttpWebResponse的形式返回,由于獲取的元數(shù)據(jù)實(shí)際上是一個(gè)WSDL文檔,所以我們可以通過(guò)ServiceDescription的Read方法直接讀取生成一個(gè)ServiceDescription對(duì)象,并最終通過(guò)MetadataSection的靜態(tài)方法CreateFromServiceDescription將其轉(zhuǎn)換成一個(gè)MetadataSection對(duì)象。該MetadataSection對(duì)象被最終添加到創(chuàng)建的MetadataSet中,并被寫入一個(gè)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. }   

當(dāng)上面的應(yīng)用程序成功執(zhí)行,包含獲取的WCF元數(shù)據(jù)的XML將會(huì)通過(guò)IE打開。通過(guò)兩種方式獲取的元數(shù)據(jù)本質(zhì)上是相同的,不過(guò)可能細(xì)心的讀者已經(jīng)發(fā)現(xiàn)了:與上面的例子(WS-MEX)獲取的MetadataSet不同,通過(guò)HTTP-GET獲取的MetadataSet僅僅包含一個(gè)元數(shù)據(jù)方言(Dialect)為WSDL的MetadataSection。這是因?yàn)?,前面的例子?shí)際上將WSDL中引用(通過(guò)終結(jié)點(diǎn)地址或者資源地址)的內(nèi)容都生成了相應(yīng)的MetadataSection,在這里由于篇幅所限,并沒(méi)有做這些工作。


網(wǎng)頁(yè)標(biāo)題:WCF元數(shù)據(jù)獲取方式技巧分享
本文來(lái)源:http://www.dlmjj.cn/article/cohhcie.html