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

WCF動態(tài)創(chuàng)建代碼正確實現(xiàn)方法分析

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

WCF是一個使用托管代碼以及面向服務(wù)的統(tǒng)一的應(yīng)用框架。那么它的出現(xiàn),給開發(fā)人員帶來了非常大的好處。在這里我們就先來給大家介紹一種比較簡單的應(yīng)用技巧,WCF動態(tài)創(chuàng)建代碼的相關(guān)實現(xiàn)方法。

目標服務(wù)原型

  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. }  

服務(wù)器代碼

  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(); 

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

WCF動態(tài)創(chuàng)建代碼:

  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動態(tài)創(chuàng)建代碼的操作。

【編輯推薦】

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

2010-02-26 11:22:16

LitwareHR使用

2010-02-25 16:52:12

引用WCF服務(wù)

2010-02-25 09:13:34

WCF異步調(diào)用

2010-02-25 10:10:29

WCF使用Header

2010-02-24 10:07:48

WCF跨越邊界

2010-02-26 08:59:10

WCF服務(wù)宿主程序

2009-12-21 10:09:26

WCF創(chuàng)建客戶端服務(wù)對

2010-02-24 13:48:44

MSMQ使用WCF

2010-02-24 10:41:28

WCF服務(wù)保護

2010-01-22 13:08:50

VB.NET創(chuàng)建數(shù)組

2010-02-26 10:30:03

ASP.NET Aja

2010-03-04 11:12:02

Python AOP

2010-02-22 14:28:35

WCF實現(xiàn)loadin

2010-03-03 17:10:57

Python操作Sql

2010-01-06 15:56:18

.Net Framew

2009-12-15 14:09:39

Ruby創(chuàng)建可參數(shù)化類

2010-03-05 16:51:01

Python程序轉(zhuǎn)為E

2009-12-08 14:10:55

Silverlight

2010-05-10 16:25:15

Oracle組件

2009-12-29 18:09:00

Silverlight
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲欧美bt| 羞羞视频在线免费 | 国产高清免费视频 | 成人在线观看网址 | 中文字幕在线视频免费观看 | 亚洲一区三区在线观看 | 国产一区三区在线 | 日韩aⅴ在线观看 | 亚洲在线一区二区 | 99久久国产免费 | 欧美自拍一区 | 一区二区精品 | 亚洲精品国产精品国自产在线 | 婷婷色成人 | 精品免费国产 | 欧美 视频| 在线视频亚洲 | 7777精品伊人久久精品影视 | 天堂综合| 国产在线区 | 亚洲一区自拍 | 久久久久久99 | 国产一级在线观看 | 亚洲欧美日韩精品久久亚洲区 | 国产欧美日韩精品一区 | 成人在线观 | 精品国产亚洲一区二区三区大结局 | 第一福利社区1024 | 91精品国产综合久久久动漫日韩 | 一区二区三区在线电影 | 国产精品永久久久久久久www | 91视频亚洲 | 国产一区二区精品在线观看 | 青青草精品视频 | 一级全黄少妇性色生活免费看 | 一区二区国产精品 | 久久天天躁狠狠躁夜夜躁2014 | 91成人影院| 狠狠干网站 | 99久热在线精品视频观看 | 永久网站 |