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

WCF動態創建代碼正確實現方法分析

開發 開發工具
我們在這篇文章中,通過一個簡單的代碼示例來為大家詳細介紹了WCF動態創建代碼的實現方法,相信朋友們可以從中獲得一些幫助。

WCF是一個使用托管代碼以及面向服務的統一的應用框架。那么它的出現,給開發人員帶來了非常大的好處。在這里我們就先來給大家介紹一種比較簡單的應用技巧,WCF動態創建代碼的相關實現方法。

目標服務原型

  1. [ServiceContract]  
  2. public interface ICalculate  
  3. {  
  4. [OperationContract]  
  5. double Add(double a, double b);  
  6. }  
  7. public class CalculateService : ICalculate  
  8. {  
  9. public double Add(double a, double b)  
  10. {  
  11. return a + b;  
  12. }  

服務器代碼

  1. ServiceHost host = new ServiceHost(typeof(CalculateService));  
  2. host.AddServiceEndpoint(typeof(ICalculate), new BasicHttpBinding(),
     "http://localhost:8080/calc");  
  3. ServiceMetadataBehavior behavior = new ServiceMetadataBehavior();  
  4. behavior.HttpGetEnabled = true;  
  5. behavior.HttpGetUrl = new Uri("http://localhost:8080/calc");  
  6. host.Description.Behaviors.Add(behavior);  
  7. host.Open(); 

我們創建了一個 ServiceMetadataBehavior,只有這樣我們才能獲得 WSDL / MetaData。

WCF動態創建代碼:

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4. using System.CodeDom;  
  5. using System.CodeDom.Compiler;  
  6. using System.IO;  
  7. using System.Reflection;  
  8. using System.ServiceModel;  
  9. using System.ServiceModel.Channels;  
  10. using System.ServiceModel.Description;  
  11. Uri uri = new Uri("http://localhost:8080/calc");  
  12. MetadataExchangeClient client = new MetadataExchangeClient
    (uri, MetadataExchangeClientMode.HttpGet);  
  13. MetadataSet metadata = client.GetMetadata();  
  14. WsdlImporter importer = new WsdlImporter(metadata);  
  15. CodeCompileUnit ccu = new CodeCompileUnit();  
  16. CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp");  
  17. ServiceContractGenerator generator = new ServiceContractGenerator(ccu);  
  18. foreach (ContractDescription description in importer.ImportAllContracts())  
  19. {  
  20. generator.GenerateServiceContractType(description);  
  21. }  
  22. StringWriter writer = new StringWriter();  
  23. provider.GenerateCodeFromCompileUnit(ccu, writer, null);  
  24. string code = writer.ToString();  
  25. File.WriteAllText("proxy.cs", code, Encoding.Default); 

運行上述代碼后,打開 proxy.cs,你看到了什么?好了,把這個文件加到客戶端項目中去就完成了WCF動態創建代碼的操作。

【編輯推薦】

  1. WCF tcpTrace實現功能淺析
  2. WCF單向協定基本創建步驟解析
  3. WCF返回自定義格式具體應用技巧詳解
  4. WCF響應服務基本應用技巧分享
  5. WCF排隊調用由NetMsmqBinding支持
責任編輯:曹凱 來源: 博客園
相關推薦

2010-02-26 11:22:16

LitwareHR使用

2010-02-25 09:13:34

WCF異步調用

2010-02-25 16:52:12

引用WCF服務

2010-02-25 10:10:29

WCF使用Header

2010-02-24 10:07:48

WCF跨越邊界

2010-02-26 08:59:10

WCF服務宿主程序

2009-12-21 10:09:26

WCF創建客戶端服務對

2010-02-24 13:48:44

MSMQ使用WCF

2010-02-24 10:41:28

WCF服務保護

2010-01-22 13:08:50

VB.NET創建數組

2010-02-26 10:30:03

ASP.NET Aja

2010-03-04 11:12:02

Python AOP

2010-02-22 14:28:35

WCF實現loadin

2010-03-03 17:10:57

Python操作Sql

2010-01-06 15:56:18

.Net Framew

2009-12-15 14:09:39

Ruby創建可參數化類

2010-03-05 16:51:01

Python程序轉為E

2009-12-08 14:10:55

Silverlight

2010-05-10 16:25:15

Oracle組件

2009-12-29 18:09:00

Silverlight
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 水蜜桃亚洲一二三四在线 | 久久精品欧美一区二区三区不卡 | 亚洲精品高清视频 | 在线观看黄色 | 熟女毛片| 一区二区亚洲 | 日本网站免费在线观看 | 欧美不卡一区二区三区 | 在线看av的网址 | 91视频免费 | 精品1区 | 99久久99久久精品国产片果冰 | 久久99精品久久久 | 久久久涩 | 国产精品久久影院 | 日本午夜网站 | 久久极品 | 久久里面有精品 | 成人免费视频观看 | 中国一级特黄真人毛片免费观看 | 琪琪午夜伦伦电影福利片 | 亚洲欧美综合 | 久久不射电影网 | www亚洲精品 | 日产精品久久久一区二区福利 | 高清国产一区二区 | 97国产精品视频人人做人人爱 | 免费在线成人网 | 天天爱av | 777zyz色资源站在线观看 | 国产欧美一区二区三区日本久久久 | 99精品视频免费在线观看 | 欧美色综合一区二区三区 | 成人精品一区 | 日日干干夜夜 | 日本福利视频免费观看 | 在线国产视频 | 在线观看免费黄色片 | 免费在线日韩 | 亚洲精品乱码久久久久v最新版 | 国产在线高清 |