为什么 IConfigurationRoot GetConnectionString 返回 null?

cur*_*ura 3 c# asp.net-core

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

打印

在此输入图像描述

dbConfig.json

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

  }
}
Run Code Online (Sandbox Code Playgroud)

用于搜索文件中的值的代码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;
}
Run Code Online (Sandbox Code Playgroud)

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

pok*_*oke 6

Configuration.GetConnectionString查找名为 的配置部分"ConnectionStrings",因此您必须像这样调整配置才能使该方法正常工作:

{
  "ConnectionStrings": {
    "AzureCosmosDb": {
      "DatabaseId": "Cosmoso"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但由于您还有其他不是连接字符串的配置,我建议您GetConnectionString根本不要使用而直接检索值:

string connection = Configuration["AzureCosmosDb:DatabaseId"];
Run Code Online (Sandbox Code Playgroud)