【发布时间】:2021-10-03 04:36:03
【问题描述】:
local.settings.json
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"tester": "e=e",
"ProjectConfiguration": "{\"tester\": \"tes22\"}"
}
}
Startup.cs
class Startup : FunctionsStartup
{
public override void Configure(IFunctionsHostBuilder builder)
{
builder.Services.AddOptions<ProjectConfiguration>()
.Configure<IConfiguration>((option, configuration) =>
{
System.Diagnostics.Debug.WriteLine($"hello:{configuration.GetSection("ProjectConfiguration").Value}");
configuration.GetSection("ProjectConfiguration").Bind(option);
});
}
}
我可以打印出hello:{"tester": "tes22"},但是当我尝试在另一个类中访问它时,它为空。
public class InitFunction
{
private readonly ProjectConfiguration _projectConfiguration;
public InitFunction(Microsoft.Extensions.Options.IOptions<ProjectConfiguration> options)
{
_projectConfiguration = options.Value;
System.Diagnostics.Debug.WriteLine(JsonConvert.SerializeObject(options.Value));
}
打印出来的option.value是{"tester":null}
似乎.bind 没有正确绑定对象。我怎样才能做到这一点?谢谢!
【问题讨论】:
标签: c# .net-core dependency-injection azure-functions