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

WCF行為擴(kuò)展為程序開發(fā)提供極大便利

開發(fā) 開發(fā)工具
在開發(fā)人員進(jìn)行一個(gè)程序開發(fā)的過程中,需要運(yùn)用不同的方式來完成他們的需求,其中就需要擴(kuò)展的應(yīng)用。下面就介紹一下WCF行為擴(kuò)展的相關(guān)應(yīng)用。

WCF服務(wù)中,我們可以對(duì)行為進(jìn)行擴(kuò)展,來滿足我們?cè)诔绦蜷_發(fā)中的各種需求。WCF以其靈活的可擴(kuò)展架構(gòu)為開發(fā)者提供了方便,其中對(duì)WCF行為擴(kuò)展或許是應(yīng)用中最為常見的。自定義對(duì)行為的擴(kuò)展并不復(fù)雜,但仍有許多細(xì)節(jié)需要注意。#t#

在服務(wù)端,一般是對(duì)DispatchRuntime和DispatchOperation進(jìn)行擴(kuò)展,擴(kuò)展點(diǎn)包括了對(duì)參數(shù)和消息的檢查,以及操作調(diào)用程序, 它們對(duì)應(yīng)的接口分別為IParameterInspector,IDispatchMessageInspector以及 IOperationInvoker。而在客戶端,則是對(duì)ClientRuntime和ClientOperation進(jìn)行擴(kuò)展,擴(kuò)展點(diǎn)包括對(duì)參數(shù)和消息 的檢查,對(duì)應(yīng)的接口分別為IParameterInspector和IClientMessageInspector。

這些接口類型均被定義在 System.ServiceModel.Dispatcher命名空間下,其中IParameterInspector接口可以同時(shí)作用在服務(wù)端和客戶端。對(duì)這些接口的實(shí)現(xiàn),有點(diǎn)類似于AOP的實(shí)現(xiàn),可以對(duì)方法調(diào)用前和調(diào)用后注入一些額外的邏輯,所以通常會(huì)將這些擴(kuò)展稱為偵聽器。例如IParameterInspector接口,就定義了如下方法:

  1. void AfterCall(string operationName, object[] outputs, 
    object returnValue, object correlationState);   
  2. object BeforeCall(string operationName, object[] inputs);  

WCF行為擴(kuò)展在調(diào)用服務(wù)對(duì)象的目標(biāo)方法前,會(huì)調(diào)用BeforeCall方法,而在調(diào)用后則會(huì)調(diào)用AfterCall方法。例如我們可在方法調(diào)用前檢驗(yàn)計(jì)算方法的參數(shù)是否小于0,如果小于0則拋出異常:

  1. public class CalculatorParameterInspector:IParameterInspector  
  2. {  
  3. public void BeforeCall(string operationName, object[] inputs)  
  4. {  
  5. int x = inputs[0] as int;  
  6. int y = inputs[1] as int;  
  7. if (x <0 || y < 0)  
  8. {  
  9. throw new FaultException("The number can not be less than zero.");  
  10. }  
  11. return null;  
  12. }  
  13. public void AfterCall(string operationName, object[] outputs, 
    object returnValue, object correlationState)  
  14. {  
  15. //empty;  
  16. }  

WCF行為擴(kuò)展對(duì)消息的檢查區(qū)分了服務(wù)端和客戶端,接口方法根據(jù)消息傳遞的順序剛好相反[注]。我們可以通過接口方法對(duì)消息進(jìn)行處理,例如打印消息的Header:

  1. public class PrintMessageInterceptor : IDispatchMessageInspector  
  2. {  
  3. #region IDispatchMessageInspector Members  
  4. public object AfterReceiveRequest(ref System.ServiceModel.Channels.
    Message request, IClientChannel channel, InstanceContext instanceContext)  
  5. {  
  6. MessageBuffer buffer = request.CreateBufferedCopy(Int32.MaxValue);  
  7. request = buffer.CreateMessage();  
  8. Console.WriteLine("After Receive Request:");  
  9. foreach (MessageHeader header in request.Headers)  
  10. {  
  11. Console.WriteLine(header);  
  12. }  
  13. Console.WriteLine(new string('*', 20));  
  14. return null;  
  15. }  
  16. public void BeforeSendReply(ref System.ServiceModel.Channels
    .Message reply, object correlationState)  
  17. {  
  18. MessageBuffer buffer = reply.CreateBufferedCopy(Int32.MaxValue);  
  19. reply = buffer.CreateMessage();  
  20. Console.WriteLine("Before Send Request:");  
  21. foreach (MessageHeader header in reply.Headers)  
  22. {  
  23. Console.WriteLine(header);  
  24. }  
  25. Console.WriteLine(new string('*', 20));  
  26. }  
  27. #endregion  

以上就是對(duì)WCF行為擴(kuò)展的相關(guān)介紹。

責(zé)任編輯:曹凱 來源: IT168
相關(guān)推薦

2009-11-06 14:08:06

WCF行為擴(kuò)展

2009-03-16 09:16:13

行為擴(kuò)展WCF.NET

2010-02-26 10:46:12

WCF行為擴(kuò)展

2011-06-30 09:54:57

Java.NETAzure

2014-11-14 14:40:21

亞馬遜Cocos引擎

2015-09-23 19:15:14

2016-01-31 17:45:31

2010-03-02 09:24:22

WCF變更行為

2010-03-02 14:41:00

WCF行為控制

2010-02-25 09:36:28

WCF行為控制

2010-03-01 14:50:30

WCF行為類型

2015-11-25 11:00:48

谷歌Chrome瀏覽器

2014-09-25 08:17:26

2009-10-15 20:46:12

LifeSize Pa網(wǎng)真LifeSize

2014-11-26 10:23:34

數(shù)據(jù)中心SDN

2009-11-06 14:25:56

WCF接口

2021-04-26 10:04:43

AirDrop漏洞數(shù)據(jù)泄漏

2009-02-09 18:11:33

Hypervisor虛擬化微軟

2024-06-05 08:51:14

Python動(dòng)態(tài)創(chuàng)建類工具

2011-02-15 09:05:35

重寫程序
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 亚洲一区中文字幕 | 国产成人精品久久久 | 日日骚av| 亚洲一区 | 欧美久久国产 | 久久久久久久久久久一区二区 | 精品一区二区三区在线观看 | 亚洲精品1| 日韩精品在线一区 | 国产精品视频网站 | 国产精品jizz在线观看老狼 | 成人精品在线观看 | 91免费电影| 久久综合一区 | 久久精品在线 | 福利片在线观看 | 午夜影院 | 日韩视频免费在线 | www四虎com | 国产精品美女久久久久aⅴ国产馆 | 成人h动漫精品一区二区器材 | 久久99精品久久 | 99这里只有精品视频 | 国产电影一区二区 | 亚洲成色777777在线观看影院 | caoporn国产 | 亚洲人人舔人人 | 欧美自拍日韩 | 久久久久国产精品 | 精品欧美乱码久久久久久1区2区 | 高清成人免费视频 | 天天插天天射天天干 | 亚洲天堂一区 | 欧美老少妇一级特黄一片 | 久久精品中文字幕 | 国产在线精品一区二区三区 | 夜夜爽99久久国产综合精品女不卡 | 久久大陆 | 亚洲精品中文字幕在线 | 凹凸日日摸日日碰夜夜 | 久久里面有精品 |