【问题标题】:How to check if Configuration Section exists in .NET Core?如何检查 .NET Core 中是否存在配置部分?
【发布时间】:2017-11-22 07:33:17
【问题描述】:

如何检查 .NET Core 中的 appsettings.json 中是否存在配置节?

即使一个部分不存在,下面的代码也总是会返回一个实例化的实例。

例如

var section = this.Configuration.GetSection<TestSection>("testsection");

【问题讨论】:

  • 这就是我正在使用的。在我的示例中,this.Configuration 是具有 GetSection 方法的 IConfigurationRoot。有人有什么建议吗?

标签: .net json asp.net-core app-config appsettings


【解决方案1】:

从.NET Core 2.0开始,你也可以调用ConfigurationExtensions.Exists扩展方法来检查一个section是否存在。

var section = this.Configuration.GetSection("testsection");
var sectionExists = section.Exists();

由于GetSection(sectionKey) never returns null,您可以安全地调用Exists 的返回值。

Configuration in ASP.NET Core 上阅读此文档也很有帮助。

【讨论】:

    【解决方案2】:

    查询Configuration的子节点并检查是否有名称为“testsection”的子节点

    var sectionExists = Configuration.GetChildren().Any(item => item.Key == "testsection"));
    

    如果“testsection”存在,则返回 true,否则返回 false。

    【讨论】:

    • configuration 使用哪个库?
    • ASP.NET 核心已经在包 Microsoft.Extensions.Configuration 中内置了对多个配置提供程序的支持。参考Configuration in ASP.NET Core
    猜你喜欢
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多