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