CommunicationState 枚举

定义

定义 ICommunicationObject 可存在的状态。

public enum class CommunicationState
public enum CommunicationState
type CommunicationState = 
Public Enum CommunicationState
继承
CommunicationState

字段

Closed 4

指示通信对象已关闭,且不再可用。

Closing 3

指示通信对象正转换到 Closed 状态。

Created 0

指示通信对象已实例化且可配置,但尚未打开或无法使用。

Faulted 5

指示通信对象发生错误,无法恢复且不再可用。

Opened 2

指示通信对象目前已打开,且随时可供使用。

Opening 1

指示通信对象正从 Created 状态转换到 Opened 状态。

注解

此枚举定义对系统中所有通信对象(包括通道、侦听器、工厂、调度程序和服务主机)都有效的状态。

用于管理这些状态间转换的方法以及可与这些状态关联的事件,都是在 ICommunicationObject 界面中进行定义。 对象的状态可以通过 State 属性来获取。

通信对象可能会处于四个主状态以及两个暂时状态。 主状态有:

  • 创建

  • 已打开

  • 已关闭

  • 出错

当在这些主状态之间转换时,通信对象可能会处于下列两个暂时状态:

  • 打开

  • 关闭

通信对象可以配置为“已创建”状态。 例如,可以更改其属性,可以注册其事件。 在此状态下,不能进行输入或输出。 例如,不能在此状态下从通道发送或接收消息。

Opening 是通信对象在调用 方法时进入的 Open 临时状态。 除非对派生类另有说明,否则无法配置处于打开状态的对象。 只能从“已创建”状态输入此转换状态。

当打开过程完成时,对象将转换为“已打开”状态。 这种转换到“已打开”状态仅从“打开”状态有效。 除非对派生类另有说明,否则目前无法配置对象。 此时,对象完全可用于消息传送。

关闭是对象在为正常关闭调用方法或中止对象时 Close 进入的临时状态。 此时,对象会由可用变为不可用。 此转换从除“已关闭”状态以外的任何状态都有效。

“已关闭”状态等效于正在释放,并且仍可检查对象的配置。

“出错”状态用于指示对象已转换为不再可以使用它的状态。 有两种主要情况可能会发生此状况:

  • 如果出于某种原因,Open 方法失败,则对象会转换到出错状态。

  • 如果基于会话的通道检测到无法恢复的错误,则会转换到出错状态。 例如,在发生协议错误(即在无效时间收到协议消息)或远程终结点中止会话时,可能会发生此状况。

处于“错误”状态的对象未关闭,并且可能正在保存资源。 应该使用 Abort 方法来关闭出错的对象。 如果 Close 对处于错误状态的对象调用 ,则会引发 , CommunicationObjectFaultedException 因为无法正常关闭对象。

适用于