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