<PackageReference Include="System.ServiceModel.Primitives" Version="6.1.0" />

System.ServiceModel.Channels.ReliableChannelBinder<TChannel>

abstract class ReliableChannelBinder<TChannel> : IReliableChannelBinder where TChannel : IChannel
protected class ChannelSynchronizer<TChannel> where TChannel : IChannel

protected abstract bool CanGetChannelForReceive { get; }

public abstract bool CanSendAsynchronously { get; }

public IChannel Channel { get; }

public bool Connected { get; }

public TimeSpan DefaultSendTimeout { get; }

public abstract bool HasSession { get; }

public abstract EndpointAddress LocalAddress { get; }

protected abstract bool MustCloseChannel { get; }

protected abstract bool MustOpenChannel { get; }

public abstract EndpointAddress RemoteAddress { get; }

public CommunicationState State { get; }

protected ChannelSynchronizer<TChannel> Synchronizer { get; }

protected object ThisLock { get; }

protected ReliableChannelBinder(TChannel channel, MaskingMode maskingMode, TolerateFaultsMode faultMode, TimeSpan defaultCloseTimeout, TimeSpan defaultSendTimeout)

public void Abort()

protected virtual void AddOutputHeaders(Message message)

public Task CloseAsync(TimeSpan timeout)

public Task CloseAsync(TimeSpan timeout, MaskingMode maskingMode)

protected virtual Task CloseChannelAsync(TChannel channel, TimeSpan timeout)

protected void Fault(Exception e)

public abstract ISession GetInnerSession()

public void HandleException(Exception e)

protected bool HandleException(Exception e, MaskingMode maskingMode)

protected bool HandleException(Exception e, MaskingMode maskingMode, bool autoAborted)

protected abstract bool HasSecuritySession(TChannel channel)

public bool IsHandleable(Exception e)

protected abstract void OnAbort()

protected abstract Task OnCloseAsync(TimeSpan timeout)

protected abstract Task OnOpenAsync(TimeSpan timeout)

protected virtual Task OnSendAsync(TChannel channel, Message message, TimeSpan timeout)

protected virtual void OnShutdown()

protected virtual Task<ValueTuple<bool, RequestContext>> OnTryReceiveAsync(TChannel channel, TimeSpan timeout)

public Task OpenAsync(TimeSpan timeout)

public Task SendAsync(Message message, TimeSpan timeout)

public Task SendAsync(Message message, TimeSpan timeout, MaskingMode maskingMode)

public void SetMaskingMode(RequestContext context, MaskingMode maskingMode)

protected abstract Task<bool> TryGetChannelAsync(TimeSpan timeout)

public virtual Task<ValueTuple<bool, RequestContext>> TryReceiveAsync(TimeSpan timeout)

public virtual Task<ValueTuple<bool, RequestContext>> TryReceiveAsync(TimeSpan timeout, MaskingMode maskingMode)

protected bool ValidateInputOperation(TimeSpan timeout)

protected bool ValidateOutputOperation(Message message, TimeSpan timeout, MaskingMode maskingMode)

protected RequestContext WrapMessage(Message message)