从 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;