C# 将整个 appSettings 文件绑定到类

Rob*_*ert 1 c# configuration binding appsettings

在 C# 中,我们可以将 appSettings 中的一些设置绑定到类,例如:

var connectionStrings = new ConnectionStrings();
var sectionConnectionString = Configuration.GetSection("ConnectionStrings");
Run Code Online (Sandbox Code Playgroud)

在应用程序设置中,它如下所示:

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
Run Code Online (Sandbox Code Playgroud)

当我想绑定日志记录时,我需要调用另一个绑定:

Configuration.GetSection("Logging");
Run Code Online (Sandbox Code Playgroud)

如何绑定整个 appsettings 文件?GetSection空字符串不起作用:

Configuration.GetSection("");
Run Code Online (Sandbox Code Playgroud)

Max*_*Ast 5

您的配置需要一个类,然后您可以使用它(您不需要映射每个设置,只需映射您需要的设置):

var configObject = Configuration.Get<ConfigObject>();
Run Code Online (Sandbox Code Playgroud)

配置对象示例:

public class ConfigObject {
    public Logging Logging { get; set; } 
    public string AllowedHosts { get; set; } 
    public ConnectionStrings ConnectionStrings { get; set; } 
}

public class Logging {
    public LogLevel LogLevel { get; set; } 
}

public class LogLevel {
    public string Default { get; set; } 
}

public class ConnectionStrings {
    public string ConnString1 { get; set; } 
}
Run Code Online (Sandbox Code Playgroud)

提示: 如果您不使用 aspnetcore,您可能还需要包含此 NuGet 包:Microsoft.Extensions.Configuration.Binder