偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

核心對象WCF Dispatcher分析

開發(fā) 后端
文章介紹了WCF Dispatcher并不是指的某一個對象,而是指完成整個dispatch功能的一組相關對象的總稱,希望大家看了會有幫助。

我們要熟練掌握一門技術(shù)的話,我們就要了解它其中的核心技術(shù),下面我就來看看關于WCF重要的核心技術(shù)吧。由于應用WCF的是一個分布式環(huán)境,按照所處的環(huán)境的不同,可以將ServiceMode分成client端的ServiceMode和service端的 ServiceMode。就其實現(xiàn)的復雜度而言,service端的ServiceMode要比client端的復雜很多。對于Service端來講,WCF的ServiceMode需要解決的是:
◆如何根據(jù)不同的listening URI創(chuàng)建ChannelListener并進行監(jiān)聽;
◆當request抵達,如何創(chuàng)建適合的Channel接收request message;
◆如何將Message分發(fā)到對應的Endpoint進行處理;
◆如何進一步將Message分發(fā)到對應的service instance;
◆以及如何進一步地分發(fā)的具體的service instance的匹配的method call。

由于“分發(fā)(Dispatch)”是其根本的功能和任務,所以Dispatcher是整個Service端ServiceMode的核心。正如標題所述,WCF Dispatcher是整個WCF service mode layer的中樞,本篇文章講著重圍繞著WCF Dispatcher來展開介紹。

WCF Dispatcher并不是指的某一個對象,而是指完成整個dispatch功能的一組相關對象的總稱。這包括3個核心的對象:ChannelListener、ChannelDispatcher和EndpointDispatcher,和一些輔助的對象。

#T#ChannelListener 在本系列的前面兩個部分已經(jīng)進行了詳細的介紹,我們知道其主要功能在于:綁定到一個固定的Listening URI,監(jiān)聽來自外界的請求。一旦請求抵達,創(chuàng)建對應的Channel接收Request message。但是我們的業(yè)務邏輯定義在一個個的service類中,所以WCF必須提供一種機制通過我們接收到的message去激活對應service instance并調(diào)用對應的方法。

對于的激活(Activation)包含兩種:創(chuàng)建一個新的service instance(PerCall instancing mode)和復用一個已經(jīng)存在的service Instance(PerSession 和Singleton instancing mode)。ChannelDispatcher的核心功能就是提供了這樣一種功能(盡管它還提供了其他的有用的功能,為了是內(nèi)容不至于太散,在這里就不再作相關的介紹)。

ChannelDispatcher通常和一個ChannelListener關聯(lián),而ChannelListener又對應著一個固定的listening URI。對于一個被host的service來講,可能定義了不同的listening address,所以一個service一般對應著一到多個ChannelDispatcher。更進一步說,當我們host一個service的時候,WCF會為之創(chuàng)建一個ServiceHostBase對象(ServiceHost或者是你自定義的繼承自ServiceHostBase的對象),所以一個ServiceHostBase對象對應一到多個ChannelDispatcher對象。

對于接收到的request message,ChannelDispatcher不會自己對其進行處理,而是將其分發(fā)到與之相匹配為的EndpointDispatcher上,所以處理message的的絕大部分功能實際上是由EndpointDispatcher來實現(xiàn)的。對于同一個listening address,我們一般會不止一個endpoint,所以一個ChannelDispatcher擁有不止一個EndpointDispatcher。對于EndpointDispatcher來講,有一個絕對絕對值得特別介紹的是DispatchRumtime。

DispatchRumtime和一個特定的EndpointDispatcher匹配,通過定制DispatchRumtime,你可以很容易地按照你具體的需要改變整個service或者某個具體的Operation相關的運行時行為。對于WCF一門重要的課題, WCF extensions來講,你的絕大部分BehaviorExtesionElment,都是通過具體的Behavior對DispatchRumtime進行定制而實現(xiàn)的。

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

2009-11-09 13:56:15

WCF Stream對

2009-11-05 14:40:08

WCF KnownTy

2009-11-06 09:22:46

WCF應用

2009-11-05 10:37:58

WCF Address

2009-11-05 15:00:26

WCF Stream

2009-11-05 13:21:41

WCF架構(gòu)

2009-11-05 13:54:07

WCF Service

2009-12-08 18:31:58

WCF WEB

2009-06-12 14:32:53

WCFJSON對象jQuery

2009-11-06 16:35:56

WCF Stream對

2009-11-05 08:46:10

WCF與ExtJs

2009-11-05 16:01:51

WCF單調(diào)服務

2009-11-05 17:00:34

WCF有序傳遞

2009-12-07 17:37:40

WCF數(shù)據(jù)

2009-11-05 16:21:51

WCF服務

2010-02-26 15:24:27

WCF釋放服務對象

2009-11-05 14:47:35

WCF Stream對

2009-11-09 14:46:09

WCF集合契約等價

2009-12-21 14:37:14

2010-02-22 13:28:05

WCF異步調(diào)用
點贊
收藏

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