ConfigurationRootExtensions
Extension methods for IConfigurationRoot.
using System;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
namespace Microsoft.Extensions.Configuration
{
[System.Runtime.CompilerServices.NullableContext(1)]
[System.Runtime.CompilerServices.Nullable(0)]
public static class ConfigurationRootExtensions
{
public static string GetDebugView(this IConfigurationRoot root)
{
return root.GetDebugView(null);
}
public static string GetDebugView(this IConfigurationRoot root, [System.Runtime.CompilerServices.Nullable(new byte[] {
2,
1
})] Func<ConfigurationDebugViewContext, string> processValue)
{
<>c__DisplayClass1_0 <>c__DisplayClass1_ = default(<>c__DisplayClass1_0);
<>c__DisplayClass1_.root = root;
<>c__DisplayClass1_.processValue = processValue;
StringBuilder stringBuilder = new StringBuilder();
<GetDebugView>g__RecurseChildren|1_0(stringBuilder, <>c__DisplayClass1_.root.GetChildren(), "", ref <>c__DisplayClass1_);
return stringBuilder.ToString();
}
private static (string Value, IConfigurationProvider Provider) GetValueAndProvider(IConfigurationRoot root, string key)
{
foreach (IConfigurationProvider item in root.Providers.Reverse()) {
if (item.TryGet(key, out string value))
return (value, item);
}
return (null, null);
}
}
}