.NET 5隔离进程Azure定时函数如何获取IConfiguration配置
.NET 5隔离进程Azure Functions获取IConfiguration实现方法
在隔离进程模型的Azure Functions中,HostBuilder的ConfigureServices提供了带HostBuilderContext的重载,直接通过上下文即可拿到已初始化完成的IConfiguration实例,无需额外手动注册。
基础实现代码
var host = new HostBuilder() .ConfigureFunctionsWorkerDefaults() // 使用带HostBuilderContext的重载 .ConfigureServices((hostContext, services) => { // 直接从上下文获取IConfiguration IConfiguration configuration = hostContext.Configuration; // 示例:读取配置项完成服务注册 var dbConnStr = configuration.GetValue<string>("ConnectionStrings:AppDb"); services.AddDbContext<AppDbContext>(opt => opt.UseSqlServer(dbConnStr)); }) .Build();
补充说明
- 默认已内置的配置源包含:本地开发的
local.settings.json、Azure门户配置的应用程序设置/连接字符串、环境变量、命令行参数,直接读取即可 - 如果需要添加自定义配置源,可通过
ConfigureAppConfiguration扩展,新增的配置会自动合并到IConfiguration中,示例如下:
var host = new HostBuilder() .ConfigureFunctionsWorkerDefaults() // 自定义配置源 .ConfigureAppConfiguration((context, configBuilder) => { configBuilder.AddJsonFile("customconfig.json", optional: true, reloadOnChange: true); }) .ConfigureServices((hostContext, services) => { // 此处的configuration已包含自定义配置源的所有内容 var customVal = hostContext.Configuration["CustomConfig:Key"]; // 后续服务注册逻辑 }) .Build();
提示:隔离进程模型的配置体系和ASP.NET Core通用主机完全一致,相关使用经验可以直接复用
内容的提问来源于stack exchange,提问作者frosty
相关产品推荐
相关产品推荐

