|
// <auto-generated/>
#nullable enable annotations
#nullable disable warnings
// Suppress warnings about [Obsolete] member usage in generated code.
#pragma warning disable CS0612, CS0618
namespace System.Runtime.CompilerServices
{
using System;
using System.CodeDom.Compiler;
[GeneratedCode("Microsoft.Extensions.Configuration.Binder.SourceGeneration", "42.42.42.42")]
[AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
file sealed class InterceptsLocationAttribute : Attribute
{
public InterceptsLocationAttribute(int version, string data)
{
}
}
}
namespace Microsoft.Extensions.Configuration.Binder.SourceGeneration
{
using Microsoft.Extensions.Configuration;
using System;
using System.CodeDom.Compiler;
using System.Globalization;
using System.Runtime.CompilerServices;
[GeneratedCode("Microsoft.Extensions.Configuration.Binder.SourceGeneration", "42.42.42.42")]
file static class BindingExtensions
{
#region IConfiguration extensions.
/// <summary>Extracts the value with the specified key and converts it to the specified type.</summary>
[InterceptsLocation(1, "FM66QDmCnbMMfGYZCBd4NS0EAABMb2dnZXJGaWx0ZXJDb25maWd1cmVPcHRpb25zLmNz")] // /_/src/libraries/Microsoft.Extensions.Logging.Configuration/src/LoggerFilterConfigureOptions.cs(33,52)
[return: global::System.Diagnostics.CodeAnalysis.NotNullIfNotNull(nameof(defaultValue))]
public static T? GetValue<T>(this IConfiguration configuration, string key, T defaultValue) => (T?)(BindingExtensions.GetValueCore(configuration, typeof(T), key) ?? defaultValue);
#endregion IConfiguration extensions.
#region Core binding extensions.
public static object? GetValueCore(this IConfiguration configuration, Type type, string key)
{
ArgumentNullException.ThrowIfNull(configuration);
IConfigurationSection section = configuration.GetSection(key);
if (TryGetConfigurationValue(section, key: null, out string? value) && !string.IsNullOrEmpty(value))
{
if (type == typeof(bool))
{
return ParseBool(value, section.Path);
}
}
return null;
}
/// <summary>Tries to get the configuration value for the specified key.</summary>
public static bool TryGetConfigurationValue(IConfiguration configuration, string key, out string? value)
{
if (configuration is ConfigurationSection section)
{
return section.TryGetValue(key, out value);
}
value = key != null ? configuration[key] : configuration is IConfigurationSection sec ? sec.Value : null;
return value != null;
}
public static bool ParseBool(string value, string? path)
{
try
{
return bool.Parse(value);
}
catch (Exception exception)
{
throw new InvalidOperationException($"Failed to convert configuration value '{value ?? "null"}' at '{path}' to type '{typeof(bool)}'.", exception);
}
}
#endregion Core binding extensions.
}
}
|