首页 > 其他分享 >.net 读取配置文件

.net 读取配置文件

时间:2023-11-30 09:44:30浏览次数:37  
标签:Console 读取 配置文件 age WriteLine net teacher

.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", true, 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();

标签:Console,读取,配置文件,age,WriteLine,net,teacher
From: https://www.cnblogs.com/sunhouzi/p/17866549.html

相关文章

  • [English]phonetic/adoption/rote/nursery
    Phonetic describesthewaythatspokenwordssound.AdoptioncomesfromtheOldFrenchwordadoptare,meaning"tochoseforoneself.”Feellikeaddinganoption?Ifyoustartdressinglikeafriend,that'sanadoptionofyourfriend's......
  • profinet协议之RTU转Modbus TCP
    profinet协议之RTU转ModbusTCPModbusRTU转ModbusTCP网关是一种重要的通信设备,它能够实现RTU和ModbusTCP之间的无缝通信。在工业领域中,RTU和ModbusTCP是常见的通信协议,它们分别适用于串口通信和以太网通信。然而,由于硬件设备的差异以及系统结构的限制,直接将RTU和ModbusTCP连......
  • Modbus转Profinet网关解决设备多、通讯效率慢、plc插槽号不够用等问题
    Modbus转Profinet网关解决设备多、通讯效率慢、plc插槽号不够用等问题大家好,我是小编今天要和大家分享一款解决设备通讯问题的神器——modbus转profinet网关。为了解决设备多、通讯效率慢的问题,我们可以使用兴达易控的modbus转profinet网关。这种方案非常有效,因为它可以将多个设备......
  • TKE在Kubernetes集群原地无损大版本升级的一些探索
     如何在不重建容器不中断服务的情况下升级Kubernetes集群大版本,一些探索,方案实现于2021年9月 该功能已上线一段时间,因为一些原因文章迟迟没有发布,升级肯定会有还没有触及到的未知问题,该方案也不是十全十美,但目前上线后也基本平稳,能够处理大部分情况,把自己在这方面的思路和......
  • .net core中实现服务自动发现
    .netcore中自带了依赖注入框架,asp.netcore或worker框架下可以直接使用,控制台程序可以通过加入Microsoft.Extensions.DependencyInjection程序包来支持。自带的di框架功能还行,但是一个不方便的地方是没有提供服务自动发现、注册的接口,稍微大的程序都是需要通过反射自己写一个发......
  • .NET 6 新东西 --PeriodicTimer
    在.NET6中引入了新Timer:System.Threading.PeriodicTimer,它和之前的Timer相比,最大的区别就是新的PeriodicTimer事件处理可以方便地使用异步,消除使用callback机制减少使用复杂度。讲解PeriodicTimer之前我们先来看以下该怎么使用它:usingvarcts=newCancellationTok......
  • 开源的.NET混淆工具使用
    一、ConfuserExhttps://github.com/mkaring/ConfuserEx使用方法:1、到Releases中下载最新的GUI包 2、解压后,打开ConfuserEx.exe,进入程序主页,再点击画圈的“+”按钮,选择要混淆的dll文件3、切换到“Setting”标签,选中dll后点击右边的“+”按钮,给它添加一条“true”规则 4......
  • Kubernetes网络
    在Kubernetes(k8s)中,网络主要由以下几部分组成:Pod网络:Pod是k8s中的基本工作单元,可以容纳一个或多个应用程序容器。为了使Pod之间能够通信,k8s提供了一个名为CNI(ContainerNetworkInterface)的网络抽象层。CNI允许第三方网络插件与k8s集成,为Pod创建和管理网络。最常见的网络插件包括Fla......
  • 【转】如何给 Visual Studio 2022 安装 .NET 4.5 开发者工具包?
    本文转自:https://www.coderbusy.com/archives/2913.html在VS2022打开.net4.5的项目时,可能会遇到编译报错:ErrorMSB3644Thereferenceassembliesfor.NETFramework,Version=v4.5werenotfound.Toresolvethis,installtheDeveloperPack(SDK/TargetingPack)for......
  • win7系统安装mysql及问题处理,安装mysql后net start mysql服务无法启动
    问题描述:win7系统安装mysql,安装mysql后netstartmysql服务无法启动1.下载mysql:官网地址:https://dev.mysql.com/downloads/mysql/根据自身系统位数选择对应版本下载,解压后进入bin文件夹,cmd命令下执行mysqld-install (需要配置path的可自行进行搜索)安装成功后再执行netsta......