当前位置: 首页 > news >正文

ASP.NET配置文件多种方式读取

ASP.NET Core项⽬默认的配置⽂件是appsettings.json,创建项⽬时就会⾃动⽣成这个⽂ 件,我们可以将⼀些配置信息存放在这个配置⽂件中,这样做的好处是当我们修改配置⽂件 时,不在需要重启应⽤,可以实现热更新。

{
 "Logging": {
 "LogLevel": {
 "Default": "Information",
 "Microsoft.AspNetCore": "Warning"
 }
 },
 "AllowedHosts": "*",
 "msg": "hello world"
}

IConfiguration

个路由终结点来演⽰如何读取这个配置

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

通过IOC注⼊IConfiguration对象,我们就可以访问不同节点的配置了,如果是单层节点, 通过configuration[“msg”]的⽅式进⾏访问,如果是多层级,则通过 configuration[“Logging:LogLevel:Default”]来访问

通过GetValue方法获取

app.MapGet("config", (IConfiguration configuration) =>
{
 	return configuration.GetValue<string>("msg");
});

GetValue⽆法读取对象,会报异常

通过GetSection方法获取

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

读取对象

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

使用委托来配置选项

先定义⼀个实体:

public class Person
{
     public string Name { get;set; }
     public int Age { get;set; }
}

配置如下:

"Person": {
 "Name": "张三",
 "Age": 18
}

注册配置:

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

使⽤配置:

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

相关文章:

  • 求解插值多项式及余项表达式
  • C语言之easyX
  • 人形机器人 - 仿生机器人核心技术与大小脑
  • 使用 Python paramiko 自动备份设备配置实验
  • 回调函数
  • 校验v-for中的form表单
  • 三、Java中七大常用锁实战
  • firefox的升级
  • 机器学习:k近邻
  • MySQL 联合索引的最左匹配原则
  • pandas(12 IO工具和稀松数据)
  • 算法题(69):搜索插入位置
  • BY组态:构建灵活、可扩展的自动化系统
  • 深入HBase——Bigtable
  • kamailio中Core Cookbook 核心配置手册
  • MVC模式和MVVM模式
  • Linux网络 | 多路转接epoll
  • 动手实现一个PDF阅读器
  • 深度解析前端性能优化:策略与实践
  • 2025年-数据库排名
  • 国内锂矿“双雄”开局业绩PK:从巨亏中崛起,或深陷泥淖谋求多元转型
  • 今年4月上海一二手房成交面积同比增21%,二手房成交2.07万套
  • 朝鲜海军新型驱逐舰进行首次武器系统测试
  • 解放日报:这是一场需要定力和实力的“科技长征”
  • 新开发银行如何开启第二个“金色十年”?
  • 万科:一季度营收近380亿元,销售回款率超100%