成人免费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-11-09 16:14:49

WCF服務元數據

2009-12-21 16:37:41

WCF獲取服務元數據

2009-11-06 10:01:07

WCF服務元數據

2009-11-09 17:30:20

WCF元數據

2009-07-01 09:43:40

WCF安全元數據

2010-01-15 10:19:42

數據交換技術

2019-11-22 08:40:19

ProtobufGo編程語言

2018-08-31 21:00:39

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

2010-02-22 11:02:06

WCF元數據

2012-05-08 09:10:56

WCF

2011-08-25 16:53:42

Lua數據 交換

2011-08-19 13:45:14

iPhone應用iPhone OS數據

2009-01-03 14:54:40

ibmdwXML

2009-11-05 16:21:51

WCF服務

2010-02-26 14:12:27

WCF元數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久成人精品 | 精品久久ai电影 | 91精品国产91久久久久久最新 | 国产一级片一区二区三区 | 国产综合久久 | 成人免费看黄网站在线观看 | 欧美性区 | 97超碰免费 | 亚洲成年在线 | 国产精品99一区二区 | 日韩波多野结衣 | 中文字幕在线播放第一页 | 97高清国语自产拍 | 午夜电影网站 | 性做久久久久久免费观看欧美 | 91视频在线 | 一级做a爰片久久毛片 | 色婷婷综合网 | 99久久久国产精品免费消防器 | 永久精品 | 亚洲一区二区三区在线播放 | 国产色视频网站 | 激情五月激情综合网 | 日韩精品一区二区三区高清免费 | 国产91丝袜在线熟 | 国产一区二区三区色淫影院 | 亚洲国产精品99久久久久久久久 | 日本成人毛片 | 午夜视频一区二区 | 成人亚洲视频 | 日日日干干干 | 久久精品一区二区三区四区 | 亚洲高清成人 | 6080亚洲精品一区二区 | 成人在线免费网站 | 色偷偷噜噜噜亚洲男人 | 国产精品99久久久久 | 国产色99精品9i | 欧美一级在线观看 | 草樱av | 日本精品视频一区二区三区四区 |