将应用程序设置中的键正确绑定到 NET Core 7 中的类

问题描述 投票:0回答:1

在旧版本的 .NET Core 中,您将所有全局设置保存在启动 cs 文件中,但据我所知,在 .NET Core 7+ 中,您将它们保存在结构上看起来不同的程序 cs 文件中 - 因此为什么这可能看起来像重复的问题。

我的目标是在运行时将应用程序设置 json 文件中的键绑定到类。提供应用程序设置 json 文件和类中的值,当您在构造函数中注入类并尝试读取值时,您应该能够将它们 1:1 绑定。

不幸的是,我似乎无法将其绑定。不知道我做错了什么。

我的尝试在program.cs文件中看起来像这样:

builder.Configuration.Bind(new AuthenticationConfiguration());

builder.Services.AddScoped<AuthenticationConfiguration>();

我的 appsettings .json 文件如下所示:

"Authentication": {
  "AccessTokenSecret": "somekey",
  "AccessTokenExpirationMinutes": "35",
  "Issuer": "https://test.com:1234/",
  "Audience": "https://test:1234/"
}

我的班级是这样的:

public class AuthenticationConfiguration
{
    public string AccessTokenSecret { get; set; }
    public int AccessTokenExpirationMinutes { get; set; }
    public string Issuer { get; set; }
    public string Audience { get; set; }
}
c# .net-core configuration asp.net-core-7.0
1个回答
0
投票

我找到了解决方案:

我必须在我的程序cs文件中使用参考IOptions服务

builder.Services.AddOptions<AuthenticationConfiguration>()
.Bind(builder.Configuration.GetSection("Authentication"));
builder.Services.AddSingleton(sp => sp.GetRequiredService<IOptions<AuthenticationConfiguration>>().Value);
© www.soinside.com 2019 - 2024. All rights reserved.