[英]What's the best method to access configuration in .NET 6?
這個問題的第二個答案: ASP.NET Core 6 如何在啟動期間訪問配置中提到我們可以通過這種方式訪問配置:
一個值得考慮的好功能是創建一個代表您的設置的類,然后將配置綁定到該類類型的實例。 例如,假設您創建了一個名為 MyAppSettings 的新類,其結構與您的 appSettings.json 相同,您可以執行以下操作:
var myAppSettings = builder.Configuration.Get<MyAppSettings>();
string logLevel = myAppSettings.Logging.LogLevel.Default;
我對此感到困惑,我想知道如何做到這一點以及這樣做有什么好處。
此外,在 .NET 6 中訪問配置的最佳方法是什么?
更詳細地解釋我的問題。 我項目中的 appSetting.json 文件只有這樣一層:
{
"name": "jack",
...1000+,
"age": "100"
}
所以我不能使用 builder.congiguration.GetSection() 來配置它:
builder.Services.Configure<XXX>(builder.Configuration.GetSection("XXX"));
如何在不改變 appSettings.json 結構的情況下一次性配置?
再次感謝~
您可以參考這個簡單的演示來了解如何
create a class that represents your settings and then bind the configuration to an instance of that class type
appsetting.json
中的值:
"UserCred": {
"Username":"Jack",
"Password":"123"
},
創建模型類:
public class User
{
public string Username { get; set; }
public string Password { get; set; }
}
在您的programs.cs
中配置:
builder.Services.Configure<User>(builder.Configuration.GetSection("UserCred"));
在控制器中,使用DI注入,就可以得到有值的模型:
public class HomeController : Controller
{
private readonly IOptions<User> _configuration;
public HomeController(IOptions<User> configuration)
{
_configuration = configuration;
}
//.......
}
有什么好處?
對我來說,如果appsetting.json
中有很多數據,創建一個類來映射它們只需要映射一次,你不需要一個一個去獲取,這樣編碼更方便。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.