ICommunicationObject

public interface ICommunicationObject : IDisposable
{
CommunicationState State { get; }

event EventHandler Closed;
event EventHandler Closing;
event EventHandler<CommunicationErrorEventArgs> Error;
event EventHandler Opened;
event EventHandler Opening;

void Abort();
IAsyncResult BeginClose(AsyncCallback callback, object state);
IAsyncResult BeginOpen(AsyncCallback callback, object state);
void Close();
void EndClose(IAsyncResult result);
void EndOpen(IAsyncResult result);
void Open();

}