从 Azure App Configuration Store 获取价值,其中内容类型在 C# 中设置为 application/json
Get Value from Azure App Configuration Store where the content-type is set to application/json in C#
我正在尝试从 Azure 应用程序配置存储中获取值。
我已经创建了一个密钥 - Credentials
,其值为
{
"Name": "MyNewCsv",
"Extension": "csv",
"Delimeter": "|"
}
并且我已将其内容类型设置为 application/json
。
我正在尝试从 C# 代码中读取这个键值,如下所示:
private readonly IConfiguration _configuration;
public Helper(IConfiguration configuration)
{
_configuration = configuration;
}
public FileConfiguration GetFileConfiguration(string azureKeyName)
{
string message = _configuration[azureKeyName];
var fileConfiguration = JsonConvert.DeserializeObject<FileConfiguration>(message);
return fileConfiguration;
}
我将 azureKeyName
作为 Credentials
传递,但是当我调试代码时 message
为空,即使密钥是在 Azure 上创建的。
当我从应用程序配置存储中删除内容类型 application/json
时,此代码工作正常。
为什么我在设置内容类型时遇到问题?
请帮助我如何在内容类型设置为 application/json
时读取键值?
请帮忙。
谢谢。
这是因为 Credentials
在 App Config 中保存为 JSON 对象。因此,将其读作 string
是不正确的。您必须创建如下所示的 class:
public class Credentials{
public string Name{get;set;}
public string Extension{get;set;}
public string Delimeter{get;set;}
}
然后,像下面这样阅读:
Credentials message = _configuration.GetSection(azureKeyName).Value;
我正在尝试从 Azure 应用程序配置存储中获取值。
我已经创建了一个密钥 - Credentials
,其值为
{
"Name": "MyNewCsv",
"Extension": "csv",
"Delimeter": "|"
}
并且我已将其内容类型设置为 application/json
。
我正在尝试从 C# 代码中读取这个键值,如下所示:
private readonly IConfiguration _configuration;
public Helper(IConfiguration configuration)
{
_configuration = configuration;
}
public FileConfiguration GetFileConfiguration(string azureKeyName)
{
string message = _configuration[azureKeyName];
var fileConfiguration = JsonConvert.DeserializeObject<FileConfiguration>(message);
return fileConfiguration;
}
我将 azureKeyName
作为 Credentials
传递,但是当我调试代码时 message
为空,即使密钥是在 Azure 上创建的。
当我从应用程序配置存储中删除内容类型 application/json
时,此代码工作正常。
为什么我在设置内容类型时遇到问题?
请帮助我如何在内容类型设置为 application/json
时读取键值?
请帮忙。
谢谢。
这是因为 Credentials
在 App Config 中保存为 JSON 对象。因此,将其读作 string
是不正确的。您必须创建如下所示的 class:
public class Credentials{
public string Name{get;set;}
public string Extension{get;set;}
public string Delimeter{get;set;}
}
然后,像下面这样阅读:
Credentials message = _configuration.GetSection(azureKeyName).Value;