Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# appsetting.development.json是由.NETCore3.1中的代码获取的注释_C#_Asp.net Core_Appsettings - Fatal编程技术网

C# appsetting.development.json是由.NETCore3.1中的代码获取的注释

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) {

在我当前的应用程序中,我使用以下设置读取appsetting.json中的所有值

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文件中的值。