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

System.ServiceModel.Channels.CommunicationObject

public abstract class CommunicationObject : ICommunicationObject
namespace System.ServiceModel.Channels { public abstract class CommunicationObject : ICommunicationObject { protected abstract TimeSpan DefaultCloseTimeout { get; } protected abstract TimeSpan DefaultOpenTimeout { get; } protected bool IsDisposed { get; } public CommunicationState State { get; } protected object ThisLock { get; } public event EventHandler Closed; public event EventHandler Closing; public event EventHandler Faulted; public event EventHandler Opened; public event EventHandler Opening; protected CommunicationObject(); protected CommunicationObject(object mutex); public void Abort(); public IAsyncResult BeginClose(AsyncCallback callback, object state); public IAsyncResult BeginClose(TimeSpan timeout, AsyncCallback callback, object state); public IAsyncResult BeginOpen(AsyncCallback callback, object state); public IAsyncResult BeginOpen(TimeSpan timeout, AsyncCallback callback, object state); public void Close(); public void Close(TimeSpan timeout); public void EndClose(IAsyncResult result); public void EndOpen(IAsyncResult result); protected void Fault(); protected virtual Type GetCommunicationObjectType(); protected abstract void OnAbort(); protected abstract IAsyncResult OnBeginClose(TimeSpan timeout, AsyncCallback callback, object state); protected abstract IAsyncResult OnBeginOpen(TimeSpan timeout, AsyncCallback callback, object state); protected abstract void OnClose(TimeSpan timeout); protected virtual void OnClosed(); protected virtual void OnClosing(); protected abstract void OnEndClose(IAsyncResult result); protected abstract void OnEndOpen(IAsyncResult result); protected virtual void OnFaulted(); protected abstract void OnOpen(TimeSpan timeout); protected virtual void OnOpened(); protected virtual void OnOpening(); public void Open(); public void Open(TimeSpan timeout); } }