原文链接: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; 

 

作者:|一事冇诚|,原文链接: https://www.cnblogs.com/ysmc/p/16307804.html

文章推荐

实现简单的多节点抢注(主)功能

TornadoFx实现侧边栏菜单效果

consul系列文章02---替换掉.netcore的配置文件

一文带你看懂Java中的Lock锁底层AQS到底是如何实现的

vue3常见问题及解决方案(四)父组件切换行,然后子组件切换...

Jwt隐藏大坑,通过源码帮你揭秘

python四个性能检测工具,包括函数的运行内存、时间等等...

vue 代码调试神器

MG--旭日东升

镜像分层原理及容器层写时复制

基础设施即代码:你需要知道的一切

从0到1使用kubebuiler开发operator