.net 读取配置文件
.net 可以读取多种不同类型的配置文件,如:json、xml、ini等。
读取配置文件需要使用到的包:
Microsoft.Extensions.Configuration
读取配置文件主要类库Microsoft.Extensions.Configuration.Binder
将配置文件转换为实体类的类库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);
方法有三个参数分别为:
- 要读取配置文件的地址
- optional:文件不存在是否报错如果为true,则文件不存在不会提示错误,如果为false,则文件在Build()的时候会提示文件不存在。
- reloadOnChange:是否使用热加载,就是如果配置文件修改,则不需要启动程序就能重新读取配置文件