in src/Microsoft.Extensions.Configuration.AzureAppConfiguration/ConfigurationClientManager.cs [90:124]
public ConfigurationClientManager(
IEnumerable<Uri> endpoints,
TokenCredential credential,
ConfigurationClientOptions clientOptions,
bool replicaDiscoveryEnabled,
bool loadBalancingEnabled)
{
if (endpoints == null || !endpoints.Any())
{
throw new ArgumentNullException(nameof(endpoints));
}
if (credential == null)
{
throw new ArgumentNullException(nameof(credential));
}
_endpoint = endpoints.First();
_credential = credential;
_clientOptions = clientOptions;
_replicaDiscoveryEnabled = replicaDiscoveryEnabled;
// If load balancing is enabled, shuffle the passed in endpoints to randomize the endpoint used on startup
if (loadBalancingEnabled)
{
endpoints = endpoints.ToList().Shuffle();
}
_validDomain = GetValidDomain(_endpoint);
_srvLookupClient = new SrvLookupClient();
_clients = endpoints
.Select(endpoint => new ConfigurationClientWrapper(endpoint, new ConfigurationClient(endpoint, _credential, _clientOptions)))
.ToList();
}