使用 IConfiguration,[value] 有效,但 IsSettingEnabled 相同 returns false

Using IConfiguration, [value] works but IsSettingEnabled for the same returns false

在我从事的特定项目中,我使用的模式与我在其他项目中成功使用的模式相同。但是,对于这个,我无法成功使用 IConfiguration 的 IsSettingEnabled。

Setup.cs

class Startup : FunctionsStartup
{
    public override void Configure(IFunctionsHostBuilder builder)
    {
    }

    public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
    {
        var context = builder.GetContext();

        builder.ConfigurationBuilder
            .AddJsonFile(Path.Combine(context.ApplicationRootPath, $"appsettings.{context.EnvironmentName}.json"), optional: true, reloadOnChange: false);
    }
}

appsettings.Development.json

{
    "ConfigName": "myconfig"
}

TheFunction.cs

public class TheFunction
{
    private IConfiguration _configuration = null;

    public TheFunction(IConfiguration configuration)
    {
        _configuration = configuration;
    }

    [FunctionName("TheFunction")]
    public async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
        ILogger log)
    {
        string configName = "ConfigName";
        string configValue = _configuration[configName];
        bool configValueExists = _configuration.IsSettingEnabled(configName);
    }

当代码运行时,configValue 是预期的“myconfig”。但是,configValueExists 为 False。

我在设置中遗漏了什么吗?这就像 Dictionary IsSettingEnabled 使用的任何东西都没有被构建,并且 [] 运算符使用不同的方法来获取值。

基于 source code Azure 的 IsSettingEnabled 检查设置值是否不为空并且可以解释为真布尔值:

public static bool IsSettingEnabled(this IConfiguration configuration, string settingName)
{
    // check the target setting and return false (disabled) if the value exists
    // and is "falsey"
    string value = configuration[settingName];
    if (!string.IsNullOrEmpty(value) &&
        (string.Compare(value, "1", StringComparison.OrdinalIgnoreCase) == 0 ||
            string.Compare(value, "true", StringComparison.OrdinalIgnoreCase) == 0))
    {
        return true;
    }
            
    return false;
}

"myconfig"在这种情况下绝对不能解释为真实。