DispatchRuntime 類別

定義

公開屬性,這些屬性可用於修改預設服務行為以及附加自訂物件,而這些物件可以修改將傳入訊息轉換成物件並分派至作業的方式。 此類別無法獲得繼承。

public ref class DispatchRuntime sealed
public sealed class DispatchRuntime
type DispatchRuntime = class
Public NotInheritable Class DispatchRuntime
繼承
DispatchRuntime

備註

使用 DispatchRuntime 類別,即可修改服務或個別端點的預設行為,或插入會對下列其中一項或所有服務程序實作自訂修改的物件:

  1. 將傳入訊息轉換成物件,並且在針對服務物件叫用方法時釋放這些物件。

  2. 將回應叫用服務作業時收到的物件轉換成傳出訊息。

在 Windows Communication Foundation (WCF) 中,通道和端點發送器是負責接受新通道、接收訊息、方法分派和叫用,以及回應處理的服務元件。 每個由 ServiceHost 物件公開的端點都有一個端點發送器和相關聯的通道發送器;此外,每個參與雙工通訊的用戶端對於每個回呼端點也都有一個端點發送器和通道發送器。

即使無法辨識訊息,DispatchRuntime 仍可讓您為特定合約上的所有訊息攔截及擴充通道或端點發送器。 當不符合在合約中宣告之任何訊息的訊息到達時,該訊息會被分派至由 UnhandledDispatchOperation 屬性傳回的作業。 若要針對特定作業在所有訊息上進行攔截或擴充,請參閱 DispatchOperation 類別。

發送器擴充性的四個主要區域是由 DispatchRuntime 類別所公開:

  1. 分派元件會使用 DispatchRuntime 的屬性以及相關聯通道發送器的屬性 (由 ChannelDispatcher 屬性傳回),自訂通道發送器接受及關閉通道的方式。 這個分類包括 ChannelInitializersInputSessionShutdownHandlers 屬性。

  2. 訊息元件會針對所處理的各個訊息進行自訂。 這個分類包括 MessageInspectorsOperationSelectorOperationsErrorHandlers 屬性。

  3. 執行個體元件會自訂服務類型執行個體的建立、存留期和處置。 如需服務物件存留期的詳細資訊,請參閱 InstanceContextMode 屬性。 這個分類包括 InstanceContextInitializersInstanceProvider 屬性。

  4. 安全性相關的元件可以使用下列屬性:

一般來說,自訂延伸物件會指派給 DispatchRuntime 屬性,或由服務行為 (實作 IServiceBehavior 的物件)、合約行為 (實作 IContractBehavior 的物件) 或端點行為 (實作 IEndpointBehavior 的物件) 插入到集合中。 接著,安裝行為物件會透過程式設計的方式或實作自訂 BehaviorExtensionElement 物件的方式新增至適當的行為集合,讓該行為可以透過應用程式組態檔插入。

屬性

AutomaticInputSessionShutdown

取得或設定值,這個值會指定當用戶端關閉輸出工作階段時,服務是否要關閉輸入工作階段。

CallbackClientRuntime

取得 ClientRuntime 物件,此物件代表 Windows Communication Foundation (WCF) 延伸模組對雙工回呼端點之傳出呼叫的安裝點。

ChannelDispatcher

取得這個分派執行階段物件的 ChannelDispatcher

ConcurrencyMode

取得或設定服務的執行個體是循序處理或同時處理訊息。

EndpointDispatcher

取得這個分派執行階段的 EndpointDispatcher

EnsureOrderedDispatch

取得值,指出是否依照傳送的順序分派訊息。

ExternalAuthorizationPolicies

取得或設定外部授權原則,這組原則會定義用於授權使用者、指定宣告集的一組規則。

IgnoreTransactionMessageProperty

取得或設定指定是否要忽略 TransactionMessageProperty 的值。

ImpersonateCallerForAllOperations

取得或設定值,這個值會控制服務是否會使用傳入訊息提供的認證來嘗試模擬。

ImpersonateOnSerializingReply

取得值,指出是否在序列化回覆動作時使用模擬。

InputSessionShutdownHandlers

取得 IInputSessionShutdown 物件的集合,該集合可用於新增自訂處理常式來控制輸入工作階段的關閉方式。

InstanceContextInitializers

取得 IInstanceContextInitializer 物件的集合,此集合可在初次建立 InstanceContext 物件時用於檢查或修改該物件。

InstanceContextProvider

取得或設定要由 IInstanceContextProvider 使用的 DispatchRuntime

InstanceProvider

取得或設定 IInstanceProvider 物件,您可以使用該物件來控制服務物件的建立和解構。

MessageAuthenticationAuditLevel

取得或設定值,這個值會指定是否要將成功的訊息驗證事件寫入由 SecurityAuditLogLocation 指定的事件記錄檔。

MessageInspectors

取得 IDispatchMessageInspector 物件的集合,此集合可用來為整個端點上的所有傳入和傳出訊息附加自訂訊息偵測器。

Operations

取得 DispatchOperation 物件的集合,此集合可用於控制特定作業的執行行為。

OperationSelector

取得或設定 IDispatchOperationSelector 物件,此物件會控制選取特定訊息的目的地 DispatchOperation

PreserveMessage

取得或設定是否保留訊息。

PrincipalPermissionMode

取得或設定值,這個值會指定 CurrentPrincipal 屬性的設定方式。

ReleaseServiceInstanceOnTransactionComplete

取得或設定值,這個值會指定是否在交易成功完成之後回收服務物件。

RoleProvider

取得或設定由 RoleProvider 使用的自訂 DispatchRuntime

SecurityAuditLogLocation

取得或設定稽核記錄檔的位置。

ServiceAuthenticationManager

取得或設定物件,該物件會管理服務作業的驗證程序。

ServiceAuthorizationAuditLevel

取得或設定值,這個值會控制對何種服務授權事件進行稽核。

ServiceAuthorizationManager

取得 ServiceAuthorizationManager,它會提供授權檢查 DispatchRuntime

SingletonInstanceContext

取得或設定要由 IInstanceContextProvider 使用的單一 DispatchRuntime

SuppressAuditFailure

取得或設定值,這個值會指定是否隱藏在記錄程序期間發生的非嚴重例外狀況。

SynchronizationContext

取得或設定用於叫用服務作業的同步化內容。

TransactionAutoCompleteOnSessionClose

取得或設定值,這個值會指定是否要在工作階段關閉時自動完成目前的異動。

Type

取得或設定合約類型。

UnhandledDispatchOperation

取得或設定被分派無法辨認之訊息的作業。

ValidateMustUnderstand

取得或設定 ValidateMustUnderstand 的值。

方法

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

適用於