in src/Microsoft.Extensions.Configuration.AzureAppConfiguration/FeatureManagement/FeatureManagementKeyValueAdapter.cs [606:665]
private ClientFilter ParseClientFilter(ref Utf8JsonReader reader, string settingKey)
{
var clientFilter = new ClientFilter();
while (reader.Read() && reader.TokenType != JsonTokenType.EndObject)
{
if (reader.TokenType != JsonTokenType.PropertyName)
{
continue;
}
string clientFiltersPropertyName = reader.GetString();
switch (clientFiltersPropertyName)
{
case FeatureManagementConstants.Name:
{
if (reader.Read() && reader.TokenType == JsonTokenType.String)
{
clientFilter.Name = reader.GetString();
}
else if (reader.TokenType != JsonTokenType.Null)
{
throw CreateFeatureFlagFormatException(
FeatureManagementConstants.Name,
settingKey,
reader.TokenType.ToString(),
JsonTokenType.String.ToString());
}
break;
}
case FeatureManagementConstants.Parameters:
{
if (reader.Read() && reader.TokenType == JsonTokenType.StartObject)
{
clientFilter.Parameters = JsonDocument.ParseValue(ref reader).RootElement;
}
else if (reader.TokenType != JsonTokenType.Null)
{
throw CreateFeatureFlagFormatException(
FeatureManagementConstants.Parameters,
settingKey,
reader.TokenType.ToString(),
JsonTokenType.StartObject.ToString());
}
break;
}
default:
reader.Skip();
break;
}
}
return clientFilter;
}