in tools/code/common/Configuration.cs [33:81]
private static JsonNode? SerializeConfiguration(IConfiguration configuration)
{
var jsonObject = new JsonObject(nodeOptions);
foreach (var child in configuration.GetChildren())
{
if (child.Path.EndsWith(":0", StringComparison.Ordinal))
{
var jsonArray = new JsonArray(nodeOptions);
foreach (var arrayChild in configuration.GetChildren())
{
jsonArray.Add(SerializeConfiguration(arrayChild));
}
return jsonArray;
}
else
{
jsonObject.Add(child.Key, SerializeConfiguration(child));
}
}
if (jsonObject.Count == 0 && configuration is IConfigurationSection configurationSection)
{
string? sectionValue = configurationSection.Value;
if (bool.TryParse(sectionValue, out var boolValue))
{
return JsonValue.Create(boolValue);
}
else if (decimal.TryParse(sectionValue, out var decimalValue))
{
return JsonValue.Create(decimalValue);
}
else if (long.TryParse(sectionValue, out var longValue))
{
return JsonValue.Create(longValue);
}
else
{
return JsonValue.Create(sectionValue);
}
}
else
{
return jsonObject;
}
}