gpt4 book ai didi

c# - 如何在 Azure Function v2(核心)中静态使用 ConfigurationBuilder?

转载 作者:太空狗 更新时间:2023-10-29 23:19:54 24 4
gpt4 key购买 nike

将 Azure Function 从 v1 移植到 v2 时,配置管理器读取 local.settings.json 的方式发生了变化。

之前,我使用以下代码在函数实例之间启用 Redis 连接池:

public static class Redis
{
/// <summary>
/// Initializes the REDIS connection.
/// </summary>
private static readonly Lazy<ConnectionMultiplexer> LazyConnection = new Lazy<ConnectionMultiplexer>(() =>
{
return ConnectionMultiplexer.Connect(ConfigurationManager.AppSettings["CacheConnection"]);
});

public static IDatabase Database => LazyConnection.Value.GetDatabase();
}

但是在 v2 中,ConfigurationManager 不再可用,我们必须使用如下内容:

new ConfigurationBuilder()
.SetBasePath(context.FunctionAppDirectory)
.AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();

但是,因为它需要仅在函数运行时可用的上下文,所以我们无法创建在所有函数之间共享的静态类。是否可以在 Azure Functions v2 中静态读取 app.settings.json?

最佳答案

我们可以使用

var config = new ConfigurationBuilder()
.AddEnvironmentVariables()
.Build();
string cacheConnection = config["CacheConnection"];

或者简单地

Environment.GetEnvironmentVariable("CacheConnection");

local.settings.json中的值(以及 Azure 上的应用程序设置)会在函数主机启动时自动注入(inject)到环境变量中。

关于c# - 如何在 Azure Function v2(核心)中静态使用 ConfigurationBuilder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54238992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com