private void ValidateConnection(CdsServiceClient client) { // Validate it var rslt = client.Execute(new WhoAmIRequest()); Assert.IsType <WhoAmIResponse>(rslt); // Clone it. - Validate use using (CdsServiceClient client2 = client.Clone()) { rslt = client2.Execute(new WhoAmIRequest()); Assert.IsType <WhoAmIResponse>(rslt); } // Create clone chain an break linkage. CdsServiceClient client3 = client.Clone(); CdsServiceClient client4 = client3.Clone(); rslt = client3.Execute(new WhoAmIRequest()); Assert.IsType <WhoAmIResponse>(rslt); // dispose client3 explicitly client3.Dispose(); rslt = client4.Execute(new WhoAmIRequest()); Assert.IsType <WhoAmIResponse>(rslt); client4.Dispose(); }
protected virtual void Dispose(bool disposing) { if (!_disposed) { if (disposing) { _maxSize = 0; while (_pool.TryDequeue(out var client)) { client.Dispose(); } if (_defaultClient != null) { _defaultClient.Dispose(); _defaultClient = null; } } _disposed = true; } }