.net 读取配置文件

.net 可以读取多种不同类型的配置文件,如:json、xml、ini等。
读取配置文件需要使用到的包:

  1. Microsoft.Extensions.Configuration 读取配置文件主要类库
  2. Microsoft.Extensions.Configuration.Binder 将配置文件转换为实体类的类库
  3. Microsoft.Extensions.Configuration.Json 读取json就使用json的类库,读取其他类型的文件用其他的类库

1. 读取一个本地的json文件

1. 在项目中创建一个config.json文件并将属性->复制到输出目录->如果较新则复制

文件内容如下:

{
  "name": "张三",
  "age": "18",
  "students": {
    "name": "张同学",
    "age": 22
  }
}

2. 在项目中添加配置文件所对应的实体类

此步骤可以省略,如果不需要将配置文件映射为实体类的话,则将此步骤省略

internal class Student
{
    public int age { get; set; }
    public string Name { get; set; }
}
internal class Teacher
{
    public string Name { get; set; }
    public int Age { get; set; }
    public Student Students { get; set; }
}

3. 在Main函数中读取配置文件

// 配置文件构造类
ConfigurationBuilder builder = new ConfigurationBuilder();
// 在类中添加本地的配置文件
builder.AddJsonFile("config.json",optional: true,reloadOnChange: true);
// 初始化配置文件
IConfigurationRoot config = builder.Build();
// 通过[字段名]直接使用,返回值是一个字符串
string name = config["name"];
// *推荐使用方式 通过GetSection方法使用,Value表示获取值
string age = config.GetSection("age").Value;
Console.WriteLine("age:" + age);
Console.WriteLine("name:" + name);
// 通过Get将配置文件映射为一个类
Teacher teacher = config.Get<Teacher>();
Console.WriteLine("teacher.age:"+teacher.Age);
Console.WriteLine("teacher.Name:" + teacher.Name);
Console.WriteLine("teacher.students.Name:" + teacher.Students.Name);
Console.WriteLine("teacher.students.age:" + teacher.Students.age);
// 映射配置文件中的某一个值为一个类
Student student = config.GetSection("students").Get<Student>();
Console.WriteLine("student.name:"+student.Name);
Console.WriteLine("student.age:"+student.age);
Console.ReadKey();

builder.AddJsonFile("config.json",optional: true,reloadOnChange: true);方法有三个参数分别为:

  1. 要读取配置文件的地址
  2. optional:文件不存在是否报错如果为true,则文件不存在不会提示错误,如果为false,则文件在Build()的时候会提示文件不存在。
  3. reloadOnChange:是否使用热加载,就是如果配置文件修改,则不需要启动程序就能重新读取配置文件
posted @ 2023-11-30 09:42  Simian_2018_12_22  阅读(66)  评论(0编辑  收藏  举报