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