ChannelFactoryBase 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为所有自定义通道工厂提供一个通用基实现。
public ref class ChannelFactoryBase abstract : System::ServiceModel::Channels::ChannelManagerBase, System::ServiceModel::Channels::IChannelFactory
public abstract class ChannelFactoryBase : System.ServiceModel.Channels.ChannelManagerBase, System.ServiceModel.Channels.IChannelFactory
type ChannelFactoryBase = class
inherit ChannelManagerBase
interface IChannelFactory
interface ICommunicationObject
Public MustInherit Class ChannelFactoryBase
Inherits ChannelManagerBase
Implements IChannelFactory
- 继承
- 派生
- 实现
注解
使用此基类可以创建自定义通道工厂。
ChannelFactoryBase 类派生自 ChannelManagerBase 类,并实现 IChannelFactory 接口以便创建通道。 这些方法处理参数验证,然后委托给派生类可重写的受保护方法、虚方法或抽象方法。
每个受保护的虚方法都自动与 IChannelFactory 接口的其他方法(包括状态转换方法)进行同步。 这意味着,无需额外锁定即可确保该对象在方法体内的状态一致。
构造函数
ChannelFactoryBase() |
初始化 ChannelFactoryBase 类的新实例。 |
ChannelFactoryBase(IDefaultCommunicationTimeouts) |
使用指定的默认通信超时初始化 ChannelFactoryBase 类的新实例。 |
属性
DefaultCloseTimeout |
获取为完成关闭操作提供的默认时间间隔。 |
DefaultOpenTimeout |
获取为完成打开操作提供的默认时间间隔。 |
DefaultReceiveTimeout |
获取为完成接收操作提供的默认时间间隔。 |
DefaultSendTimeout |
获取为完成发送操作提供的默认时间间隔。 |
IsDisposed |
获取一个值,该值指示通信对象是否已被释放。 (继承自 CommunicationObject) |
State |
获取指示通信对象当前状态的值。 (继承自 CommunicationObject) |
ThisLock |
获取在状态转换过程中保护类实例的相互排斥锁。 (继承自 CommunicationObject) |
方法
事件
Closed |
当通信对象转换到已关闭状态时发生。 (继承自 CommunicationObject) |
Closing |
当通信对象转换到正在关闭状态时发生。 (继承自 CommunicationObject) |
Faulted |
在通信对象转换到出错状态时发生。 (继承自 CommunicationObject) |
Opened |
当通信对象转换到已打开状态时发生。 (继承自 CommunicationObject) |
Opening |
当通信对象转换到正在打开状态时发生。 (继承自 CommunicationObject) |
显式接口实现
IDefaultCommunicationTimeouts.CloseTimeout |
获取 close 方法(由通信对象调用)在超时之前的时间间隔。 (继承自 ChannelManagerBase) |
IDefaultCommunicationTimeouts.OpenTimeout |
获取 open 方法(由通信对象调用)在超时之前的时间间隔。 (继承自 ChannelManagerBase) |
IDefaultCommunicationTimeouts.ReceiveTimeout |
获取 receive 方法(由通信对象调用)在超时之前的时间间隔。 (继承自 ChannelManagerBase) |
IDefaultCommunicationTimeouts.SendTimeout |
获取 send 方法(由通信对象调用)在超时之前的时间间隔。 (继承自 ChannelManagerBase) |