Ejemplo n.º 1
0
        /// <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);
            }
        }