C# appsetting.development.json是由.NETCore3.1中的代码获取的注释
在我当前的应用程序中,我使用以下设置读取appsetting.json中的所有值C# appsetting.development.json是由.NETCore3.1中的代码获取的注释,c#,asp.net-core,appsettings,C#,Asp.net Core,Appsettings,在我当前的应用程序中,我使用以下设置读取appsetting.json中的所有值 public class AppSettings { private static AppSettings _appSettings; public string RememberMeCookieName{ get; set; } public AppSettings(IConfiguration config) {
public class AppSettings
{
private static AppSettings _appSettings;
public string RememberMeCookieName{ get; set; }
public AppSettings(IConfiguration config)
{
this.RememberMeCookieName = config.GetValue<string>("RememberMeCookieName");
_appSettings = this;
}
public static AppSettings Current
{
get
{
if (_appSettings == null)
{
_appSettings = GetCurrentSettings();
}
return _appSettings;
}
}
public static AppSettings GetCurrentSettings()
{
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddEnvironmentVariables();
IConfigurationRoot configuration = builder.Build();
var settings = new AppSettings(configuration.GetSection("AppSettings"));
return settings;
}
公共类AppSettings
{
私有静态AppSettings\u AppSettings;
公共字符串RememberMeCookieName{get;set;}
公用应用程序设置(IConfiguration配置)
{
this.RememberMeCookieName=config.GetValue(“RememberMeCookieName”);
_appSettings=this;
}
当前公共静态应用程序设置
{
得到
{
如果(_appSettings==null)
{
_appSettings=GetCurrentSettings();
}
返回appSettings;
}
}
公共静态AppSettings GetCurrentSettings()
{
var builder=new ConfigurationBuilder()
.SetBasePath(目录.GetCurrentDirectory())
.AddJsonFile(“appsettings.json”,可选:false,reloadOnChange:true)
.AddenEnvironmentVariables();
IConfigurationRoot配置=builder.Build();
var设置=新的AppSettings(configuration.GetSection(“AppSettings”);
返回设置;
}
现在我的问题是,即使
.AddEnvironmentVariables();
正在提取appsettings.json中的值,而不是appsettings.Development.json中的值
欢迎提供任何帮助尝试在第一个调用之后添加第二个.AddJsonFile调用,使用字符串插值作为环境名称:
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true)
这是假设您将环境变量ASPNETCORE_environment设置为“Development”.不幸的是,我没有访问env.EnvironmentName的权限,因为这是类库项目,而不是asp.net web app项目。我没有访问该项目中的IWebHostEnvironment env。啊,我没有给予足够的关注,也没有意识到您没有处于启动状态。在这种情况下,我会直接将环境变量拉入env.EnvironmentName的位置:
Environment.GetEnvironmentVariable(“ASPNETCORE_Environment”)
。此外,我不认为.AddenEnvironmentVariables()
符合您的想法。根据文档,它使用具有相同键的环境变量覆盖appsettings文件中的值。