C# 是否在azure函数中使用AddSecretClient DI扩展?

C# 是否在azure函数中使用AddSecretClient DI扩展?,c#,azure,dependency-injection,azure-functions,nuget-package,C#,Azure,Dependency Injection,Azure Functions,Nuget Package,我正在尝试为我的azure函数配置一些依赖项。我需要能够访问(除其他外)azure keyvault。目前,我正在手动访问它,并且必须自己进行依赖性注入。这感觉不太对劲,我想找个更好的方法把它连接起来。我发现这似乎很理想 太好了,我想这么做。问题是这些扩展似乎不支持Azure函数中实现的特定DI。具体来说,AddSecretClient预期的类型与注入Configure(iffunctionshostbuilder builder)的生成器之间存在不兼容: [程序集:函数启动(类型(启动))]

我正在尝试为我的azure函数配置一些依赖项。我需要能够访问(除其他外)azure keyvault。目前,我正在手动访问它,并且必须自己进行依赖性注入。这感觉不太对劲,我想找个更好的方法把它连接起来。我发现这似乎很理想

太好了,我想这么做。问题是这些扩展似乎不支持Azure函数中实现的特定DI。具体来说,
AddSecretClient
预期的类型与注入
Configure(iffunctionshostbuilder builder)
的生成器之间存在不兼容:

[程序集:函数启动(类型(启动))]
名称空间快照
{
[不包括CODECODECOVERAGE]
公共类启动:函数启动
{
公共覆盖无效配置(IFunctionsHostBuilder)
{
注册人TTP客户(建造商);
builder.Services.AddLogging();
//错误
builder.AddSecretClient(新Uri(“”);
}
}
}
类型 'Microsoft.Azure.Functions.Extensions.DependencyInjection.IFunctionsHostBuilder' 不能用作泛型类型中的类型参数“TBuilder”,或 方法 'SecretClientBuilderExtensions.AddSecretClient(TBuilder, Uri)”。不存在来自的隐式引用转换 'Microsoft.Azure.Functions.Extensions.DependencyInjection.IFunctionsHostBuilder' 转到“Azure.Core.Extensions.IAzureClientFactoryBuilderWithCredential”


那么,这些扩展是否有Azure函数版本,或者我是否必须推出自己的扩展?

因为
AddAzureClients
IServiceCollection
上的一种扩展方法, 您可能需要执行以下操作:

builder.Services.AddAzureClients(clientBuilder=>
{
//添加KeyVault客户端
clientBuilder.AddSecretClient(keyVaultUrl);
//添加存储帐户客户端
AddBlobServiceClient(storageUrl);
//默认情况下使用环境凭据
使用凭证(新环境凭证());
});

您是否尝试了
builder.Services.AddAzureClients(clientBuilder=>)
?是的,这就是我在@juunas缺少的内容。是否要添加答案?我很乐意被证明是错的,但我在任何地方都找不到这个记录。。。
public void ConfigureServices(IServiceCollection services)
{
  services.AddAzureClients(builder =>
  {
    // Add a KeyVault client
    builder.AddSecretClient(keyVaultUrl);

    // Add a storage account client
    builder.AddBlobServiceClient(storageUrl);

    // Use the environment credential by default
    builder.UseCredential(new EnvironmentCredential());
  });

  services.AddControllers();
}