.net core 5 静态类获取json配置的方法

注入获取

注入获取通过IConfiguration直接获取的方法官方文档里就有,可以直接看这里

如:appsettings.json

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

{

  "Position": {

    "Title": "编辑器",

    "Name": "Joe Smith"

  },

  "MyKey": "My appsettings.json Value",

  "Logging": {

    "LogLevel": {

      "Default": "Information",

      "Microsoft": "Warning",

      "Lifetime": "Information"

    }

  },

  "AllowedHosts": "*"

}

可以用注入的IConfiguration,用冒号分隔的形式取值,如下

1

var name = Configuration["Position:Name"];

实体类获取

单个获取对应多个组合的值就不太方便,比如Logging最好能用一个类类直接接收,方法如下:
先定义一个跟json节点对应的类

1

2

3

4

5

6

7

8

9

10

public class Logging

 {

   public LogLevel LogLevel { get; set; }

 }

 public class LogLevel

 {

   public string Default { get; set; }

   public string Microsoft { get; set; }

   public string Lifetime { get; set; }

 }

然后在Startup的里ConfigureServices增加

1

services.Configure<Logging>(Configuration.GetSection("Logging"));

调用的地方直接注入

1

2

3

4

5

private readonly Logging _config;

public HomeController(IOptions<Logging> config)

{

  _config = config.Value;

}

静态类获取

如果是在静态类里使用,可以在Startup里的构造函数中这样写

1

2

3

4

5

public Startup(IConfiguration configuration)

    {

      Configuration = configuration;

      configuration.GetSection("Logging").Bind(MySettings.Setting);

    }

使用IConfigurationSection的Bind方法将节点直接绑定至一个实例上,注意示例必须是初始化过的。

1

2

3

4

public static class MySettings

  {

    public static Logging Setting { get; set; } = new Logging();

  }

有了静态类的属性在在静态类里就可以使用了。

到此这篇关于.net core 静态类获取appsettings的方法的文章就介绍到这了,更多相关.net core获取appsettings内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值