如何使用 .NET CORE 3.1 中的配置读取连接字符串

how to read connection string using configuration in .NET CORE 3.1

我正在将我的代码从 .NET CORE 2.2 迁移到 .NET CORE 3.1。从 appsettings.json

读取连接字符串时遇到以下错误

"'Configuration' 不包含 'GetConnectionString'"

的定义

我在 startup.cs

中使用以下代码
public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0);
    services.AddDbContext<AppDbContext>(options =>
    options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}

我的appsettings.json如下

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },

  "ConnectionStrings": {
    "DefaultConnection": "Data Source=abc.net;Initial Catalog=xyz;User ID=paper;Password=pencil"
  },
  "AllowedHosts": "*",

  "serverSigningPassword": "key",
  "accessTokenDurationInMinutes": 2
}

有什么方法可以读取此连接字符串和 appsettings.json

中的其他变量

需要注意的地方很少,

你在构造函数中注入了吗?

public Startup(IConfiguration configuration)
{
  Configuration = configuration;
}

public IConfiguration Configuration { get; }

并将其用作

 public void ConfigureServices(IServiceCollection services)
  {
     var connection = Configuration.GetConnectionString("DefaultConnection");
     services.AddDbContext<ShelterPZ_DBContext>(options => options.UseSqlServer(connection));
     services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0);
  }