public void Dispose() { if (!_closed) Close(); if (!ReferenceEquals(SocketStream, OriginalStream)) { SocketStream.Dispose(); SocketStream = OriginalStream; } _socket.Dispose(); _cancellationTokenSource.Dispose(); Data.Dispose(); }