找回密码
 立即注册
快捷导航

[.NET] 配置文件 appsettings.json

[复制链接]
狗蛋 2023-7-7 20:25:20 | 显示全部楼层
本帖最后由 狗蛋 于 2023-7-7 20:35 编辑

ASP.NETCore项目默认的配置文件是appsettings.ison,创建项目时就会自动生成这个文件,我们可以将一些配置信息存放在这个配置文件中;

好处:当我们修改配置文件时,不在需要重启应用,可以实现热更新。

默认配置如下:
配置文件 appsettings.json101 作者:狗蛋 帖子ID:445

通过 IConfiguration 方式:

用一个路由终结点来演示:

app.MapGet("config", (IConfiguration configuration) => {
    return configuration["msg"] + "_" + configurtion["Logging:LogLevel:Default"];

});

上述是通过IoC注入IConfiguration对象,我们就可以访问不同节点的配置了,如果是单层节点,通过 configuration["msg"] 的方式进行访间,如果是多层级,则通过configuration["Logging:LogLevel:Default"] 来访间

通过 GetValue 方法获取

app.MapGet("config", (IConfiguration configuration) => {
    return configuration.GetValue<string>("msg") + "_" + configurtion["Logging:LogLevel:Default"];

});

注意:GetValue无法读取对象,会报异常

通过 GetSection 方法获取(可以读取对象)

app.MapGet("config", (IConfiguration configuration)=>{
    return configuration.GetSection("msg").Value;
}

读取对象

app.MapGet("config", (IConfiguration configuration)=>{
    return configuration.GetSection("Person").Get<User>();
}

使用委托来配置选项 读取对象配置

先定义一个实体

public class Persion{
    public string Name{get; set;}
    public string Age {get; set}
}

配置如下:
配置文件 appsettings.json6156 作者:狗蛋 帖子ID:445

注册配置:

builder.Services.Configure<Person>(builder.Configuration.GetSection("Person"));

使用配置:


app.MapGet("config", (IOptions<Person> options)=>{
    return $"{options.Value.Name}, {options.Value.Age}";
}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

温馨提示

关于 注册码 问题

      由于近期经常大量注册机器人注册发送大量广告,本站开启免费入群领取注册码注册网站账号,注册码在群公告上贴着...

关于 注册码 问题

      由于近期经常大量注册机器人注册发送大量广告,本站开启免费入群领取注册码注册网站账号,注册码在群公告上贴着...

Archiver|手机版|小黑屋|DLSite

GMT+8, 2024-11-23 01:16

Powered by Discuz! X3.5 and PHP8

快速回复 返回顶部 返回列表