.net core读取json文件配置(原始方法)

当前测试是在.net core控制台应用程序下进行。

首先创建一个json文件,config.json内容如下。

{
  "name": "config",
  "redisConfig": {
    "host": "redis.stg",
    "port": 6379,
    "userName": "practice",
    "passWord": "online"
  }
}

 注意将其属性设置为如果较新则复制,这样文件才会出现在程序生成的文件夹下。

引用对应nuget程序包

NuGet\Install-Package Microsoft.Extensions.Configuration -Version 6.0.1
NuGet\Install-Package Microsoft.Extensions.Configuration.Json -Version 6.0.0

进行文件读取测试

static void Main(string[] args)
{
    ConfigurationBuilder builder = new ConfigurationBuilder();
    builder.AddJsonFile("config.json", optional:false, reloadOnChange:true);

    IConfigurationRoot root = builder.Build();
    string name = root["name"];
    Console.WriteLine($"name:{name}");

    string redisHost = root.GetSection("redisConfig:host").Value;
    Console.WriteLine($"redisHost:{redisHost}");
}

输出如下:
name:config
redisHost:redis.stg

其中builder.AddJsonFile("config.json", optional:false, reloadOnChange:true);为添加配置json文件。

第一个参数为创建的json文件

第二个参数为是否校验文件真实性,如为false则json文件不存在会报错,为true即使文件不存在程序也能正常执行,但是获取的配置值均为空

第三个参数为在配置文件发生变更是否重新加载

也可以建立实体对象接受所有配置

    class Config
    {
        public string Name { get; set; }

        public RedisConfig RdsConfig { get; set; }
    }

    class RedisConfig
    {
        public string Host { get; set; }

        public int Port { get; set; }

        public string UserName { get; set; }

        public string PassWord { get; set; }
    }

需要引用如下包

NuGet\Install-Package Microsoft.Extensions.Configuration.Binder -Version 6.0.0

获取方式如下:

static void Main(string[] args)
        {
            ConfigurationBuilder builder = new ConfigurationBuilder();
            builder.AddJsonFile("config.json", optional:false, reloadOnChange:true);

            IConfigurationRoot root = builder.Build();

            RedisConfig redisConfig = root.GetSection("redisConfig").Get<RedisConfig>();
            Console.WriteLine($"redisHost:{redisConfig.Host}");

            Config config = root.Get<Config>();
            Console.WriteLine($"name:{config.Name}");

        }        

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值