public virtual async ValueTask DisposeAsync() { if (_client != null) { await _client.DisposeAsync().ConfigureAwait(false); return; } if (IsDisposed) { return; } IsDisposed = true; State.Reset(); foreach (var extensionKvp in _extensions) { try { await extensionKvp.Value.DisposeAsync().ConfigureAwait(false); } catch (Exception ex) { Log(LogMessageSeverity.Error, $"An exception occurred while disposing the {extensionKvp.Key} extension.", ex); } } RestClient.Dispose(); }