从2019年9月开始,使用C#编写Azure函数与ASP.NET Core有一些交叉,尤其是在依赖项注入方面。
隐藏的“主机生成器”是否将运行时应用程序设置(我认为实际上只是运行时的环境变量)读入配置系统IConfiguration
中?
因此,双下划线名称可用于重新创建C#开发人员已知的分层配置。
答案 0 :(得分:3)
Azure函数支持与ASP.NET Core类似的约定。
"EmailSettings__Sender": "xy@gmail.com",
"EmailSettings__From": "Hello xy@gmail.com",
可以绑定到以下POCO
public class EmailSettings
{
public string Sender { get; set; }
public string From { get; set; }
}
像这样使用ConfigurationBuilder
:
var provider = builder.Services
.BuildServiceProvider();
var executionContextOptions = provider
.GetService<IOptions<ExecutionContextOptions>>()
.Value;
var config = new ConfigurationBuilder()
.SetBasePath(executionContextOptions.AppDirectory)
.AddEnvironmentVariables()
.AddJsonFile("local.settings.json", true, true)
.Build();
// other initialization code
config.GetSection(nameof(EmailSettings)).Get<EmailSettings>()
在启动功能时。要进行部署,请将这些键/值对放入门户网站功能的“应用程序设置”中。
这就是我们在生产中进行设置的方式,并且效果很好。