配置系统学习-1入门

1 入门

  1. 传统的web.config配置有缺点。比如,如果我们部署多台服务器,如果配置需要改变,那么我们就需要将每个服务器的配置文件改一遍。
  2. 为了兼容,仍然可以使用web.config和configurationManager类,但不推荐。
  3. .NET中的配置文件支持丰富的配置源,包括文件(json xml ini)等、注册表、环境变量、命令行、Azure key value等,还可以配置自定义配置源。可以跟踪配置的改变,可以按照优先级覆盖。

json文件配置

  1. 创建一个json文件,文件名随意,比如config.json,设置“如果较新则复制。”
  2. NuGet安装Microsoft.Extensions.Configuration和Microsoft Extensions.configuration.json

1. 简单方式读取

    static void Main(string[] args)
    {
        ConfigurationBuilder builder = new ConfigurationBuilder();
        // 将要读的json文件加进来
        // optional 设置为false,如果找不到配置文件则会报错;设置为true,会显示值为空
        // reloadOnChange 文件改变是否重新加载
        // 这里需要注意一个点,程序读取的并不是我们项目中的json文件而是和exe在同一个目录下的复制的json文件
        builder.AddJsonFile("config.json", optional: false, reloadOnChange: true);
        IConfigurationRoot root = builder.Build();
        string name = root["name"];
        Console.WriteLine($"name: {name}");

        string adderss = root.GetSection("proxy:address").Value;
        Console.WriteLine($"address: {adderss}");
    }

这里需要注意一个点,程序读取的并不是我们项目中的json文件而是和exe在同一个目录下的复制的json文件。即读取的不是图一,而是图二中的json文件。
在这里插入图片描述
在这里插入图片描述

2 绑定方式读取配置

  1. 可以绑定一个类,自动完成配置的读取
  2. 安装Microsoft.Extensions.Configuration.Binder
class Program
{
    static void Main(string[] args)
    {
        ConfigurationBuilder builder = new ConfigurationBuilder();
        // 将要读的json文件加进来
        // optional 设置为false,如果找不到配置文件则会报错;设置为true,会显示值为空
        // reloadOnChange 文件改变是否重新加载
        // 这里需要注意一个点,程序读取的并不是我们项目中的json文件而是和exe在同一个目录下的复制的json文件
        builder.AddJsonFile("config.json", optional: false, reloadOnChange: true);
        IConfigurationRoot root = builder.Build();

        // 绑定对象方式读取
        Proxy proxy = root.GetSection("proxy").Get<Proxy>();
        Console.WriteLine(proxy.Address + proxy.Port);
    }
}

class Proxy
{
    public string Address { get; set; }

    public int Port { get; set; }
}

添加一个proxy类,类里面的属性和配置文件中的字段保持一致,然后就可以直接映射为一个对象。

上面介绍的这两种读取方式我们通常是不这么用的,以后会介绍更简单的方式,但是这两种也需要知道,需要了解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值