.NET Core 讀取配置技巧 - IOptions<TOptions> 介面

一事冇誠發表於2022-05-25

原文連結: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; 

 

相關文章