/// <summary> /// Initializes a new instance of the <see cref="ConsulDiscoveryClient"/> class. /// </summary> /// <param name="client">a Consul client</param> /// <param name="options">the configuration options</param> /// <param name="registrar">a Consul registrar service</param> /// <param name="logger">optional logger</param> public ConsulDiscoveryClient(IConsulClient client, ConsulDiscoveryOptions options, IConsulServiceRegistrar registrar = null, ILogger <ConsulDiscoveryClient> logger = null) { _client = client ?? throw new ArgumentNullException(nameof(client)); _options = options ?? throw new ArgumentNullException(nameof(options)); _logger = logger; _registrar = registrar; if (_registrar != null) { _registrar.Start(); _thisServiceInstance = new ThisServiceInstance(_registrar.Registration); } }