如果我有以下设置,有没有办法从Program.cs
内请求设置.
appsettings.json
:
{
"Settings": {
"UseMemory": false,
"Cors": {
"Origins": "*",
"Headers": "*",
"Methods": "*"
}
}
}
设置型号:
public class AppSettings
{
public bool? UseMemory { get; set; }
public CorsSettings? Cors { get; set; }
}
public class CorsSettings
{
public required string Origins { get; set; }
public required string Headers { get; set; }
public required string Methods { get; set; }
}
这些都是我的try ,但设置始终是null
(Program.Main
内)
var builder = WebApplication.CreateBuilder(args);
var appSettings = builder.Configuration.GetRequiredSection("Settings");
builder.Services.Configure<Models.AppSettings>(appSettings);
...
var settings = builder.Configuration.Get<Models.AppSettings>(); // { UseMemory: null, Cors: null }
var builder = WebApplication.CreateBuilder(args);
var settings = builder.Configuration.GetValue<Models.AppSettings>("Settings"); // null
var settingsText = builder.Configuration.GetValue<string>("Settings"); // null
这很"管用",但我希望找到一种方法,将所有设置放在一个整齐的对象中:
var builder = WebApplication.CreateBuilder(args);
var settingsText = builder.Configuration.GetSection("Settings").GetValue<string>("UseMemory"); // false