簡體   English   中英

在 .NET 6 中訪問配置的最佳方法是什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM