gpt4 book ai didi

azure - 在Azure函数V1中,如何使用ConfigurationManager检索settings.json值?

转载 作者:行者123 更新时间:2023-12-03 03:44:46 26 4
gpt4 key购买 nike

我的一个客户想要将旧的 .NET Framework 4.5.2 控制台应用迁移到 Azure 函数。

遗憾的是,这个控制台应用程序引用了在 .NET Framework 4.5.2 中开发的类库,他们不想将其迁移到 .Net Core 或以任何方式修改它。因此,该函数将在 V1 中,这是 .NET Framework 唯一支持的版本。

问题在于,类库在内部使用旧的 ConfigurationManager 类来检索设置。为了测试是否可以使用该库,我在 Azure function V1 项目中添加了对 System.Configuration 的引用,并尝试从 local.settings.json 中检索值:

ConfigurationManager.AppSettings["Key"]

但这会返回 null。

我知道在 Azure 函数中检索设置的正确方法是:

Environment.GetEnvironmentVariable("Key")

但是,正如我之前所说,我一直使用旧的 .NET Framework 库,并且需要一种使用 ConfigurationManager.AppSettings< 从 local.settings.json 获取值的方法。可能吗?

最佳答案

从 Azure Function v2 开始,我们使用 ConfigurationBuilder 而不是 ConfigurationManager。但Azure Functions v1 使用 ConfigurationManager 来访问应用程序设置或环境变量。因此,使用 ConfigurationManager 是我们对 Azure Function v1 的唯一选择。

下面的示例显示了获取值的正确方法 -

...
var myclientId = System.Configuration.ConfigurationManager.AppSettings["ClientId"];
var myclientSecret = System.Configuration.ConfigurationManager.AppSettings["ClientSecret"];
...

ConfigurationManager 是获取所需设置的好方法。它公开了 AppSettings,它只是一个 NameValueCollection - 使用键(或“名称”),您可以返回一个字符串类型的值。

还要确保您的 local.settings.json 如下所示 -

{
"IsEncrypted":false,
"Values" : {
"MyUrl" : "www.google.com",
...
}
...
}

检查这个discussion了解更多信息。请注意,如果您仍使用 v1,GetEnvironmentVariable 无法获取 ConnectStrings,因为它们未导入到环境中,只有 Values 可用。

关于azure - 在Azure函数V1中,如何使用ConfigurationManager检索settings.json值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69584364/

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