【发布时间】:2020-11-28 16:22:22
【问题描述】:
如何使用 IOptions 将应用程序设置注入 Azure Functions v3.0
总是获取 JwtIssuerOptions 空值
说我们的设置文件,local.settings.json 包含以下数据:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"SqlConnectionString": "Server"
},
"JwtIssuerOptions": {
"JwtKey": "rpqru",
"JwtIssuer": "mydomain",
"JwtExpireDays": 7,
"JwtExpireMinutes": 240,
"JwtAuidence": "localhost"
}
}
函数启动
公共类启动:FunctionsStartup {
public override void Configure(IFunctionsHostBuilder builder)
{
var localConfig = new ConfigurationBuilder()
.SetBasePath(Environment.CurrentDirectory)
.AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
builder.Services.AddOptions<JwtIssuerOptions>().Configure<IConfiguration>((settings, configuration) =>
{
configuration.Bind("JwtIssuerOptions", settings);
});
}
JwtIssuerOptions 类如下所示
public class JwtIssuerOptions
{
public string JwtKey { get; set; }
public string JwtIssuer { get; set; }
public int JwtExpireDays { get; set; }
public int JwtExpireMinutes { get; set; }
public string JwtAuidence { get; set; }
}
类似下面的函数
public class MyFunctions
{
private readonly IOptions<JwtIssuerOptions> _options;
public MyFunctions(IOptions<ApplicationSettings> applicationSettingsOptions,
IOptions<JwtIssuerOptions> options)
{
// the named section of the configuration file "JwtIssuerOptions"
_options;= options;
}
}
【问题讨论】:
标签: .net-core dependency-injection azure-functions serverless azure-function-app