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)

适用于