Table of Contents

Interface IProtocolManager

Namespace
MAS.Communication
Assembly
MAS.Communication.dll

通讯协议实例管理器接口

public interface IProtocolManager : IDisposable
Inherited Members

Properties

Count

获取当前已缓存的协议实例数量

int Count { get; }

Property Value

int

Methods

Contains(IProtocol)

判断指定协议实例是否已存在于缓存中

bool Contains(IProtocol protocol)

Parameters

protocol IProtocol

协议实例

Returns

bool

存在返回 true,否则返回 false

Contains(string)

判断指定实例标识是否已存在于缓存中

bool Contains(string instanceId)

Parameters

instanceId string

实例标识

Returns

bool

存在返回 true,否则返回 false

Get(string)

根据实例标识获取已缓存的协议实例

IProtocol? Get(string instanceId)

Parameters

instanceId string

实例标识

Returns

IProtocol

协议实例;不存在时返回 null

GetInstanceIds()

获取当前所有实例标识

IReadOnlyCollection<string> GetInstanceIds()

Returns

IReadOnlyCollection<string>

实例标识集合快照

GetOrCreate(ICommunicationConfig)

根据配置获取协议实例;如果实例不存在,则创建并缓存

IProtocol GetOrCreate(ICommunicationConfig config)

Parameters

config ICommunicationConfig

通讯配置实例

Returns

IProtocol

协议实例

Exceptions

NotSupportedException

不支持的通讯配置类型时抛出

ObjectDisposedException

对象已被释放时抛出

GetOrCreate<TProtocol>(ICommunicationConfig)

根据配置获取指定类型的协议实例;如果实例不存在,则创建并缓存

TProtocol GetOrCreate<TProtocol>(ICommunicationConfig config) where TProtocol : class, IProtocol

Parameters

config ICommunicationConfig

通讯配置实例

Returns

TProtocol

指定类型的协议实例

Type Parameters

TProtocol

协议类型

Exceptions

InvalidCastException

创建的协议实例与指定类型不匹配时抛出

NotSupportedException

不支持的通讯配置类型时抛出

ObjectDisposedException

对象已被释放时抛出

Get<TProtocol>(string)

根据实例标识获取已缓存的指定类型协议实例

TProtocol? Get<TProtocol>(string instanceId) where TProtocol : class, IProtocol

Parameters

instanceId string

实例标识

Returns

TProtocol

指定类型协议实例;不存在或类型不匹配时返回 null

Type Parameters

TProtocol

协议类型

Remove(IProtocol)

移除并释放指定实例

bool Remove(IProtocol protocol)

Parameters

protocol IProtocol

通讯实例

Returns

bool

移除成功返回 true,否则返回 false

Exceptions

ObjectDisposedException

对象已被释放时抛出

Remove(string)

移除并释放指定标识的协议实例

bool Remove(string instanceId)

Parameters

instanceId string

实例标识

Returns

bool

移除成功返回 true,否则返回 false

Exceptions

ObjectDisposedException

对象已被释放时抛出

Events

ProtocolCreated

当协议实例被创建时触发的事件

event EventHandler<ProtocolCreatedEventArgs>? ProtocolCreated

Event Type

EventHandler<ProtocolCreatedEventArgs>

ProtocolRemoved

当协议实例被移除时触发的事件

event EventHandler<ProtocolRemovedEventArgs>? ProtocolRemoved

Event Type

EventHandler<ProtocolRemovedEventArgs>