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

關于WCF服務元數據交換編程揭密

開發 后端
這里實現了WCF服務元數據交換HTTP-GET編程實現、WCF服務元數據交換WS-*編程實現,文章有詳細的代碼和介紹,希望大家看了會有幫助。

WCF還是比較常用的,于是我研究了一下WCF服務元數據交換,在這里拿出來和大家分享一下,希望對大家有用。前者配置簡單、快捷,后者相對復雜。但是編程方式允許代碼運行時控制或者設置元數據交換的信息。因而更加靈活。下面我們就來看看如何通過代碼實現剛才的服務原數據交換的配置。

WCF服務元數據交換HTTP-GET編程實現:

必須添加對命名空間的引用, using System.ServiceModel.Description;我們對服務元數據操作的類和接口信息定義在此命名空間里,具體的實現HTTP-GET的代碼如下:

  1. ServiceMetadataBehavior metadataBehavior;  
  2. //定義服務行為變量,  
  3. metadataBehavior = host.Description.Behaviors.Find<ServiceMetadataBehavior>();  
  4. //獲取宿主的行為列表  
  5. if (metadataBehavior == null)  
  6. //如果沒有服務原數據交換的行為,實例化添加服務原數據交換行為  
  7. {  
  8. metadataBehavior = new ServiceMetadataBehavior();  
  9. Uri httpAddress = new Uri("http://localhost:8001/");  
  10. metadataBehavior.HttpGetUrl =httpAddress;  
  11. metadataBehavior.HttpGetEnabled = true;//設置HTTP方式  
  12. host.Description.Behaviors.Add(metadataBehavior);  

#T#首先是獲得服務行為的列表信息,如果沒有設置,我們就進行實例化服務原數據交換行為,并設置http方式可用。 host.Description.Behaviors.Add(metadataBehavior);添加宿主服務的行為。

WCF服務元數據交換WS-*編程實現:

這里分別實現了HTTP、TCP、IPC三種方式的的元數據交換的代碼。和http-get方式略有不同,我們需要實例化自己綁定元素和綁定,***作為參數傳遞給host宿主實例。具體實現代碼如下:

  1. //2編程方式實現ws*原數據交換  
  2. //生命三個綁定節點類  
  3. BindingElement tcpBindingElement = new TcpTransportBindingElement();  
  4. BindingElement httpBindingElement = new HttpsTransportBindingElement();  
  5. BindingElement pipeBindingElement = new NamedPipeTransportBindingElement();  
  6. //實例化通用綁定類的實例  
  7. Binding tcpBinding = new CustomBinding(tcpBindingElement);  
  8. Binding httpBinding = new CustomBinding(httpBindingElement);  
  9. Binding pipeBinding = new CustomBinding(pipeBindingElement);  
  10. //  
  11. Uri tcpBaseAddress = new Uri("net.tcp://localhost:9001/");  
  12. Uri httpBaseAddress = new Uri("http://localhost:9002/");  
  13. Uri pipeBaseAddress = new Uri("net.pipe://localhost/");  
  14. host.AddServiceEndpoint(typeof(WCFService.IWCFService), new NetTcpBinding(), tcpBaseAddress);  
  15. host.AddServiceEndpoint(typeof(WCFService.IWCFService), new WSHttpBinding(), httpBaseAddress);  
  16. host.AddServiceEndpoint(typeof(WCFService.IWCFService), new NetNamedPipeBinding(), pipeBaseAddress);  
  17.  
  18. //ServiceMetadataBehavior metadataBehavior;//定義服務行為變量,  
  19. metadataBehavior = host.Description.Behaviors.Find<ServiceMetadataBehavior>();  
  20. //獲取宿主的行為列表  
  21. if (metadataBehavior == null)//如果沒有服務原數據交換的行為,實例化添加服務原數據交換行為  
  22. {  
  23. metadataBehavior = new ServiceMetadataBehavior();  
  24.  
  25. host.Description.Behaviors.Add(metadataBehavior);  
  26. }  
  27. //如果沒有可用的mex節點,可以使用一下代碼判斷,添加mex節點  
  28.  
  29. host.AddServiceEndpoint(typeof(IMetadataExchange), tcpBinding, "mex");  
  30. host.AddServiceEndpoint(typeof(IMetadataExchange), httpBinding, "mex");  
  31. host.AddServiceEndpoint(typeof(IMetadataExchange), pipeBinding, "mex");  


 

責任編輯:田樹 來源: 博客
相關推薦

2010-03-02 10:50:57

WCF元數據交換

2009-11-06 10:25:34

WCF元數據交換

2009-11-06 10:37:57

配置WCF服務

2009-11-09 17:17:31

WCF元數據交換

2009-12-22 16:14:01

WCF服務元數據

2009-12-21 16:37:41

WCF獲取服務元數據

2009-11-06 10:01:07

WCF服務元數據

2009-11-09 16:14:49

WCF服務元數據

2009-11-09 17:30:20

WCF元數據

2009-07-01 09:43:40

WCF安全元數據

2010-01-15 10:19:42

數據交換技術

2018-08-31 21:00:39

數據交換模型數據模型應用程序

2019-11-22 08:40:19

ProtobufGo編程語言

2010-02-22 11:02:06

WCF元數據

2012-05-08 09:10:56

WCF

2011-08-25 16:53:42

Lua數據 交換

2009-01-03 14:54:40

ibmdwXML

2011-08-19 13:45:14

iPhone應用iPhone OS數據

2009-11-05 16:21:51

WCF服務

2010-02-26 14:12:27

WCF元數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 请别相信他免费喜剧电影在线观看 | 欧美精品乱码99久久影院 | 在线看日韩 | 欧美精品久久久 | 成年人精品视频 | 精品一区二区三区四区 | 中文字幕国产在线 | 日本精品一区二区三区视频 | 观看av | 中文字幕日韩一区 | 精品亚洲永久免费精品 | 亚洲成av人片在线观看 | 国产精品美女久久久久aⅴ国产馆 | 91在线精品秘密一区二区 | 免费v片在线观看 | 欧美精品二区三区 | 中文字幕精品一区二区三区精品 | 欧美成人不卡 | 一级片视频免费观看 | 成人三级视频在线观看 | 一级视频黄色 | www.久久 | 亚洲欧美激情视频 | 97精品超碰一区二区三区 | 欧美日韩一二三区 | 欧美激情在线一区二区三区 | 在线中文字幕av | 日本一区二区在线视频 | 日韩视频一区在线观看 | 国产精品日产欧美久久久久 | 国产一区二区三区在线免费观看 | 九九视频网 | 亚洲国产一区二区三区 | 精品欧美一区二区在线观看欧美熟 | 天天综合网91| 狠狠操狠狠干 | 一级免费视频 | av在线免费观看网站 | 欧美日韩一区二区三区不卡视频 | 91av在线免费看 | 91色啪|