You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 8中WebApplication.CreateBuilder替代ConfigureAppConfiguration的等效方法

在.NET 8的WebApplication.CreateBuilder中替代ConfigureAppConfiguration的方法

问题描述

我之前在.NET 6中通过WebHost.CreateDefaultBuilder调用ConfigureAppConfiguration方法添加ConfigurationSource,现在升级到.NET 8后改用WebApplication.CreateBuilder,但找不到对应的ConfigureAppConfiguration方法。

我的需求是为AWS Secrets Manager添加ConfigurationSource,实现类似AWS官方博客中描述的功能。之前尝试按.NET 6的方式添加ConfigurationSource,但因缺少等效方法,导致从AWS Secrets Manager获取的内容为空,希望实现和.NET 6中ConfigureAppConfiguration完全一致的功能。

更新内容:自定义扩展方法

我已实现如下扩展方法:

public static IConfigurationBuilder UseAmazonSecretManagerConfiguraton(this IConfigurationBuilder config, Action<AWSProviderOptions> action)
{
    if (action == null)
    {
        throw new ArgumentNullException(nameof(action));
    }
    // 实例化配置选项
    var opts = new AWSProviderOptions();

    // 执行配置委托
    action(opts);

    // 创建对应配置源
    var configurationSource = new AmazonKMSConfigurationSource
    {
        SecretName = opts.SecretName
    };

    config.Add(configurationSource);
    return config;
}

解决方案

在.NET 8的WebApplication.CreateBuilder中,无需使用ConfigureAppConfiguration,直接通过builder.Configuration即可获取IConfigurationBuilder实例,进而调用你的自定义扩展方法,具体代码示例如下:

.NET 6原有写法

WebHost.CreateDefaultBuilder(args)
    .ConfigureAppConfiguration((context, config) =>
    {
        config.UseAmazonSecretManagerConfiguraton(opts =>
        {
            opts.SecretName = "你的密钥名称";
        });
    })
    .UseStartup<Startup>();

.NET 8等效写法

var builder = WebApplication.CreateBuilder(args);

// 直接通过builder.Configuration调用扩展方法添加配置源
builder.Configuration.UseAmazonSecretManagerConfiguraton(opts =>
{
    opts.SecretName = "你的密钥名称";
});

// 后续服务配置
builder.Services.AddControllers();

var app = builder.Build();
// 中间件配置逻辑
// ...

app.Run();

注意事项

  • 确保你的AmazonKMSConfigurationSource类正确实现了IConfigurationSource接口,能够正常从AWS Secrets Manager拉取配置内容。
  • 配置源的添加顺序会影响配置优先级,若需要让Secrets Manager的配置覆盖其他源的配置,需确保它在其他配置源之后添加(默认WebApplication.CreateBuilder已加载了appsettings等配置,后续添加的源优先级更高)。

内容的提问来源于stack exchange,提问作者Matthew Kok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 07:11:06