- A+
所属分类:.NET技术
原文链接: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;