public async Task ConnectAsync(CoapClientConnectOptions options, CancellationToken cancellationToken) { _connectOptions = options ?? throw new ArgumentNullException(nameof(options)); var transportLayer = options.TransportLayerFactory?.Invoke(); if (transportLayer == null) { throw new InvalidOperationException("No CoAP transport layer is set."); } cancellationToken.ThrowIfCancellationRequested(); _transportLayerAdapter = new CoapTransportLayerAdapter(transportLayer, _logger); try { var transportLayerConnectOptions = new CoapTransportLayerConnectOptions { EndPoint = await ResolveIPEndPoint(options).ConfigureAwait(false) }; await _transportLayerAdapter.ConnectAsync(transportLayerConnectOptions, cancellationToken).ConfigureAwait(false); } catch (Exception) { _transportLayerAdapter.Dispose(); throw; } }
public async Task ConnectAsync(CoapClientConnectOptions options, CancellationToken cancellationToken) { _connectOptions = options ?? throw new ArgumentNullException(nameof(options)); _transportLayerAdapter = new CoapTransportLayerAdapter(options.TransportLayer, _logger); var transportLayerConnectOptions = new CoapTransportLayerConnectOptions { EndPoint = await ResolveIPEndPoint(options).ConfigureAwait(false) }; await _transportLayerAdapter.ConnectAsync(transportLayerConnectOptions, cancellationToken).ConfigureAwait(false); }