public AzureAppConfigurationOptions ConfigureRefresh()

in src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureAppConfigurationOptions.cs [428:468]


        public AzureAppConfigurationOptions ConfigureRefresh(Action<AzureAppConfigurationRefreshOptions> configure)
        {
            if (RegisterAllEnabled)
            {
                throw new InvalidOperationException($"{nameof(ConfigureRefresh)}() cannot be invoked multiple times when {nameof(AzureAppConfigurationRefreshOptions.RegisterAll)} has been invoked.");
            }

            var refreshOptions = new AzureAppConfigurationRefreshOptions();
            configure?.Invoke(refreshOptions);

            bool isRegisterCalled = refreshOptions.RefreshRegistrations.Any();
            RegisterAllEnabled = refreshOptions.RegisterAllEnabled;

            if (!isRegisterCalled && !RegisterAllEnabled)
            {
                throw new InvalidOperationException($"{nameof(ConfigureRefresh)}() must call either {nameof(AzureAppConfigurationRefreshOptions.Register)}()" +
                    $" or {nameof(AzureAppConfigurationRefreshOptions.RegisterAll)}()");
            }

            // Check if both register methods are called at any point
            if (RegisterAllEnabled && (_individualKvWatchers.Any() || isRegisterCalled))
            {
                throw new InvalidOperationException($"Cannot call both {nameof(AzureAppConfigurationRefreshOptions.RegisterAll)} and "
                + $"{nameof(AzureAppConfigurationRefreshOptions.Register)}.");
            }

            if (RegisterAllEnabled)
            {
                KvCollectionRefreshInterval = refreshOptions.RefreshInterval;
            }
            else
            {
                foreach (KeyValueWatcher item in refreshOptions.RefreshRegistrations)
                {
                    item.RefreshInterval = refreshOptions.RefreshInterval;
                    _individualKvWatchers.Add(item);
                }
            }

            return this;
        }