.NET Core 讀取設定技巧

2022-05-25 06:01:02

原文連結:https://www.cnblogs.com/ysmc/p/16307804.html

  在開發過程中,我們無法離開組態檔(appsetting.json),例如組態檔中有以下內容:

{
  "Options": {
    "Option1": "Set1",
    "Option2": "Set2",
    "Option3": "Set3",
    "Option4": "Set4"
  }
}

  通常情況下,我們會通過注入 IConfiguration 介面,呼叫 GetValue<string>("*") 或者 GetSection("*") 函數獲取所需的設定項,當設定項非常多,而且專案中很多功能都需要用到設定項,一旦需要更改設定專案名,那無疑是一場噩夢。

   IOptions<TOptions> 介面就可以完美解決這個問題,先寫一個實體類,屬性與組態檔中的 Options 設定項一致:

public class Options
{
    public string? Option1 { get; set; }

    public string? Option2 { get; set; }

    public string? Option3 { get; set; }

    public string? Option4 { get; set; }
}

  在 Program.cs(.Net 6) 或 Startup.cs 中新增以下設定:

//.Net 6
builder.Services.Configure<Options>(Configuration.GetSection("Options"));

//<= .Net Core 5
services.Configure<Options>(Configuration.GetSection("Options"));

  需要用到該設定項的時候,注入  IOptions<Options> Options 即可開心使用!

var options  = Options.Value;