让我们考虑一下我用于Azure函数配置的以下类:
internal class Configuration
{
private readonly IConfigurationRoot config;
public Configuration(ExecutionContext context)
{
config = new ConfigurationBuilder()
.SetBasePath(context.FunctionAppDirectory)
.AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
}
public bool MyFlag
{
get => bool.TryParse(config[nameof(MyFlag)], out var value) ? value : false;
set => config[nameof(MyFlag)] = value.ToString();
}
}
该功能可以轻松地从应用程序设置中读取MyFlag属性。
但是我希望我的函数也能够在azure函数应用程序设置中设置MyFlag属性的值。不幸的是,Azure和本地环境的价值都没有改变。
我试图这样绑定属性
config.Bind("Values", this);
在Configuration
类构造函数中,它只能在本地环境中工作。但是,它不适用于Azure环境。
是否可以通过Azure功能将值存储到应用程序设置中?
答案 0 :(得分:0)
您需要使用IConfiguration
类才能从appSettings
配置中检索值,也可以将其称为local.settings.json
。
要访问您myFlag
,您可以这样做
public MyService(IConfiguration configuration){
// For a section
var emailConfig = configuration.GetSection("Email");
// For a single value
var myFlagVal = config["MyFlag"];
}
答案 1 :(得分:0)
此处提供了另一种解决方案的帖子:Save Changes of IConfigurationRoot sections to its *.json file in .net Core 2.2
希望它能按预期回答您的问题...