Json配置文件的使用

1.使用Configuration直接读

  • 构造函数中添加 IConfiguration
private readonly IConfiguration config;
public WeatherForecastController(IConfiguration _config)
        {
            this.config = _config;
        }
  • appsettings.json文件中代码格式:
{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*"
}
  • 在控制器中添加如下代码:
 var str = config["Logging:LogLevel:Default"];

2.使用ConfigurationRoot读取

  • appsettings.json文件内容
    注意:json文件属性设置为 如果较新则复制
{
  "name": "Hpf",
  "age": 18,
  "proxy": {
    "address": "aa",
    "port": "80"
  }
}
  • ConfigSetup配置类
public static class ConfigSetup
    {
        private static IConfigurationRoot _configroot;
        public static IConfigurationRoot Configroot
        {
            get
            {
                if (_configroot == null)
                {
                    var builder = new ConfigurationBuilder().AddJsonFile("appsettings.json", optional: false, reloadOnChange: false);
                    _configroot = builder.Build();
                }
                return _configroot;
            }
            set { _configroot = value; }
        }
    }
  • 使用方法一:
string name1 = ConfigSetup.Configroot["name"];
string address1 = ConfigSetup.Configroot.GetSection("proxy:address").Value;
  • 使用方法二(映射为类):
class Proxy
{
    public string Address { get; set; }

    public int Port { get; set; }
}
Proxy proxy = ConfigSetup.Configroot.GetSection("proxy").Get<Proxy>();
string address = proxy.Address;

3.不同类型数据的读取的方式

Json配置文件模拟数据

{
  "name": "Hpf",
  "age": 18,
  "proxy": {
    "address": "aa",
    "port": "80",
    "ids": [ 1, 3, 5 ]
  }
}
  • 读取某一个变量的值
ConfigSetup.Configroot["name"]
  • 读取多层级下某一个变量的值
ConfigSetup.Configroot["proxy:address"]

or

ConfigSetup.Configroot.GetSection("proxy:address").Value
  • 读取数组
ConfigSetup.Configroot["proxy:ids:0"]


or

ConfigSetup.Configroot.GetSection("proxy:ids:0").Value
  • 某一层级下多个变量转成对象读取
Proxy proxy = ConfigSetup.Configroot.GetSection("proxy").Get<Proxy>();

📄视频参考:杨中科,NET6教程 - P39配置系统

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DotNeter-Hpf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值