为什么IConfigurationRoot GetConnectionString返回null?

时间:2018-08-29 15:35:38

标签: c# asp.net-core

我正在尝试在Asp.net Core项目中读取.json文件。

打印

enter image description here

dbConfig.json

{
  "AzureCosmosDb": {
    "EndpointUrl": "https://localhost:8081",
    "PrimaryKey": "C2y6yDjf5/R++4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==",
    "DatabaseId": "Cosmoso"
  },
  "Oracle12c": {

  }
}

dbConfig.Json中的文件中搜索值的代码:

public static string GetConnectionString(string fileJson, string conexao)
{
  var builder = new ConfigurationBuilder().AddJsonFile(fileJson);

  Configuration = builder.Build();

   string connection = Configuration.GetConnectionString("AzureCosmosDb:DatabaseId");
   return connection;
}

该方法返回null,这是怎么回事?

1 个答案:

答案 0 :(得分:1)

Configuration.GetConnectionString查找名称为"ConnectionStrings"的配置部分,因此您必须像这样调整配置,方法才能起作用:

{
  "ConnectionStrings": {
    "AzureCosmosDb": {
      "DatabaseId": "Cosmoso"
    }
  }
}

但是因为那里还有其他不是连接字符串的配置,所以我建议您完全不要使用GetConnectionString并直接获取值:

string connection = Configuration["AzureCosmosDb:DatabaseId"];