如何在代码中使用appsettings.Development.json变量

P-F*_*nny 5 asp.net-core

我有一个appsettings.json和appsettings.Development.json。我需要根据环境分配SmtpServer名称。

appsettings.json中的配置文件为:

{ 
  "EmailConfiguration": {
   "SmtpServer": "mail.MYDOMAIN.com"
  }
}
Run Code Online (Sandbox Code Playgroud)

在appsettings.Development.json中是:

{ 
  "EmailConfiguration": {
    "SmtpServer": "mail.MYLOCAL.com"
  }
}
Run Code Online (Sandbox Code Playgroud)

当我像这样在Startup ConfigureServices()中分配配置时:

var emailconfig = Configuration.GetSection("EmailConfiguration").Get<EmailConfiguration>();
services.AddSingleton<IEmailConfiguration>(emailconfig);
Run Code Online (Sandbox Code Playgroud)

它始终使用appsettings.json('mail.MYDOMAIN.com'),而不使用appsettings.Development.json。

如何修改此代码以使用正确的环境设置?

P-F*_*nny 5

答案是我需要的只是 2 个不同 appsettings 文件中的环境变量。我的问题是我的配置设置之一中缺少右括号,这意味着 appsettings.Development.json 不会替换 appsettings.json 变量,因为它们不匹配。哎呀……