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

.NET Aspire 9.0中AddAzureKeyVaultSecrets无参调用可行性问询

.NET Aspire 9.0中AddAzureKeyVaultSecrets的配置疑问解答

首先明确:你没有理解错,AddAzureKeyVaultSecrets本身确实没有无参重载,文档的表述存在歧义,它想表达的并非“调用无参方法”,而是无需在代码中硬编码KeyVault URI,可通过配置文件自动读取参数。

核心原因与正确用法

Aspire的AddAzureKeyVaultSecrets扩展方法(来自Aspire.Azure.Security.KeyVault NuGet包)依赖配置绑定来简化参数传递,具体步骤如下:

  1. 安装依赖包
    确保项目已安装对应版本的NuGet包:
dotnet add package Aspire.Azure.Security.KeyVault --version 9.0.*
  1. 配置appsettings.json
    按文档要求在配置文件中添加节点:
{
  "Aspire": {
    "Azure": {
      "Security": {
        "KeyVault": {
          "VaultUri": "https://你的密钥保管库名称.vault.azure.net/",
          "Credential": "DefaultAzureCredential" // 默认使用Azure默认凭据,可省略
        }
      }
    }
  }
}
  1. 正确调用扩展方法
    文档所谓的“无参调用”实际是指无需手动传入URI参数,而是通过配置节绑定实现参数注入,正确的调用方式有两种:
  • 直接传入配置节:
var keyVaultConfig = builder.Configuration.GetSection("Aspire:Azure:Security:KeyVault");
builder.AddAzureKeyVaultSecrets(keyVaultConfig);
  • 通过委托绑定配置:
builder.AddAzureKeyVaultSecrets(settings => 
    builder.Configuration.Bind("Aspire:Azure:Security:KeyVault", settings));

文档歧义说明

文档的表述模糊点在于把“无需硬编码URI参数”简化成了“无参调用”,但实际上AddAzureKeyVaultSecrets的所有重载都需要参数(配置节或设置委托),只是这些参数可以通过配置文件自动填充,不需要在代码里写死URI。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 14:21:04