.net core 读取配置文件的几种方式
一、Json配置文件
1、这里的配置文件指的是下图

2、json配置文件示例
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"Setting": {
"Url": "http://localhost:8080/",
"Name": "localhost"
}
}
二、读取配置文件的几种方式
1、方式一:直接读取
[ApiController]
[Route("[controller]/[action]")]
public class TestController: ControllerBase
{
public IConfiguration _configuration { get; set; }
public TestController(IConfiguration configuration)
{
_configuration = configuration;
}
/// <summary>
/// 方式一:直接读取单个值
/// </summary>
[HttpGet, HttpPost]
public void GetConfigDemo1()
{
var url = _configuration["Setting:Url"]; // http://localhost:8080/
var url2 = _configuration.GetValue<string>("Setting:Url"); // http://localhost:8080/
var url3 = _configuration.GetSection("Setting").GetSection("Url").Value; // http://localhost:8080/
}
}
2、方式二:读取Json对象
1)新建应用设置类AppSettings
/// <summary>
/// 应用设置类
/// 总类:对应json文件,确定json模块与对象
/// </summary>
public static class AppSettings
{
public static SettingClass settingClass { get; set; }
public static void Init(IConfiguration configuration)
{
// 将Setting模块绑定到Json模块的Setting类
settingClass = new SettingClass();
configuration.Bind("Setting", settingClass);
}
}
2)新建Json模块Setting类
/// <summary>
/// Json模块Setting类
/// </summary>
public class SettingClass
{
/// <summary>
/// 地址
/// </summary>
public string Url { get; set; }
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
}
3)在Startup.cs中调用AppSettings的初始化方法

// AppSettings总类进行调用静态方法
AppSettings.Init(Configuration);
4)在控制器中使用
[ApiController]
[Route("[controller]/[action]")]
public class TestController: ControllerBase
{
public IConfiguration _configuration { get; set; }
public TestController(IConfiguration configuration)
{
_configuration = configuration;
}
/// <summary>
/// 方式二:读取Json对象 - 变成类使用
/// </summary>
[HttpGet, HttpPost]
public void GetConfigDemo2()
{
var url = AppSettings.settingClass.Url; // http://localhost:8080/
var name = AppSettings.settingClass.Name; // localhost
}
}
}
3、方式三:在注册服务中绑定实体类与Json文件,使用时声明为全局常量
1)在Startup.cs中将Json模块类与Json文件对应内容绑定(Json模块类如方式2的SettingClass类)

services.Configure<SettingClass> (option =>
{
option.Url = Configuration["Setting:Url"];
option.Name = Configuration["Setting:Name"];
});
2)在控制器中使用
[ApiController]
[Route("[controller]/[action]")]
public class TestController: ControllerBase
{
public IConfiguration _configuration { get; set; }
public string UrlStr { get; set; }
public string NameStr { get; set; }
public TestController(IConfiguration configuration, IOptions<SettingClass> settings)
{
_configuration = configuration;
UrlStr = settings.Value.Url;
NameStr = settings.Value.Name;
}
/// <summary>
/// 方法三:在注册服务的时候把配置文件与类绑定好值,使用时声明为全局常量
/// </summary>
[HttpGet, HttpPost]
public void GetConfigDemo3()
{
var url = UrlStr; // http://localhost:8080/
var name = NameStr; // localhost
}
}
以上就是.net core 读取配置文件的几种方式的介绍,做此记录,如有帮助,欢迎点赞关注收藏!
.net core 读取配置文件的几种方式的更多相关文章
- Spring Boot 入门系列(二十五)读取配置文件的几种方式详解!
在项目开发中经常会用到配置文件,之前介绍过Spring Boot 资源文件属性配置的方法,但是很多朋友反馈说介绍的不够详细全面.所以, 今天完整的分享Spring Boot读取配置文件的几种方式! S ...
- Spring Boot读取配置文件的几种方式
Spring Boot获取文件总的来说有三种方式,分别是@Value注解,@ConfigurationProperties注解和Environment接口.这三种注解可以配合着@PropertySou ...
- spring-boot-route(二)读取配置文件的几种方式
Spring Boot提供了两种格式的配置文件,分别是properties 和 yml.Spring Boot最大的特点就是自动化配置,如果我们想修改自动化配置的默认值,就可以通过配置文件来指定自己服 ...
- java 学习笔记 读取配置文件的三种方式
package com.itheima.servlet.cfg; import java.io.FileInputStream; import java.io.FileNotFoundExceptio ...
- 关于spring读取配置文件的两种方式
很多时候我们把需要随时调整的参数需要放在配置文件中单独进行读取,这就是软编码,相对于硬编码,软编码可以避免频繁修改类文件,频繁编译,必要时只需要用文本编辑器打开配置文件更改参数就行.但没有使用框架之前 ...
- Servlet读取配置文件的三种方式
一.利用ServletContext.getRealPath()[或getResourceAsStream()] 特点:读取应用中的任何文件.只能在web环境下. private void text3 ...
- Spring 读取配置文件的俩种方式
读取配置可通过 org.springframework.core.env.Environment 类来获取, 也可以通过@Value的方式来获取 注解形式: @PropertySource({&quo ...
- Spring读取配置文件的几种方式
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; imp ...
- C#读取配置文件的几种方式
配置文件 <?xml version="1.0" encoding="utf-8" ?> <configuration> <con ...
- SpringBoot中读取配置文件的几种方式
1.读取application文件 在application.yml或者properties文件中添加: info: name: xiaoming age: 13 sex: 1 读取方式如下: imp ...
随机推荐
- .NET实现堆排序
堆排序及相关知识 堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序.首先简单了解下堆结构. 堆 堆是具 ...
- 【云原生 · Kubernetes】kubernetes v1.23.3 二进制部署(三)
5 部署 etcd 集群 etcd 是基于 Raft 的分布式 KV 存储系统,由 CoreOS 开发,常用于服务发现.共享配置以及并发控制(如 leader 选举.分布式锁等). kubernete ...
- 基于python的数学建模---差分方程
一.递推关系--酵母菌生长模型 代码: import matplotlib.pyplot as plt time = [i for i in range(0,19)] number = [9.6,18 ...
- python(牛客)试题解析3 - 困难
导航 一.找到已经最大承重的背包内如何放入最大价值的物品的最优解 二.查找一个字符串中包含另外一个字符串(可打乱顺序)的次数三.计算正整数数组从头走到最后一个成员所需的最小步骤四.计算字符串非严格递增 ...
- 在CentOS编译Git源码
Git 是一个免费的开源分布式版本控制系统,旨在处理从小到小到的所有内容 具有速度和效率的超大型项目. Git易于学习,占用空间很小,性能快如闪电. 它超越了Subversion,CVS,Perfor ...
- POST请求发送的表单数据和json数据的区别及python代码实现
前言 这篇博客会介绍最常见post 请求form表单数据和json数据 数据类型之间的区别, urllib代码的实现(python), requests库实现, 以及如何使用postman软件发送这些 ...
- day18 批量查询与模糊查询 & 聚合函数与内置函数 & distinct关键字 & 分页查询limit & 排序order
day18 两个表student和user student id s_name s_age s_sex user id u_name u_age u_sex 批量插入 insert into stud ...
- 【Java】各种数据类型的元素数量
容易混,就算写多了也容易混... 数据类型 元素个数写法 备注 Stack s s.size() s的元素个数 二维数组m[][] m.length m的行数 二维数组m[][] m[0].lengt ...
- Spring IOC源码(二):IOC容器之 刷新前的准备
1.源码解析 prepareRefresh()容器刷新refresh()的第一个方法,是容器刷新前的准备工作. 1 // 容器启动的开始时间 毫秒级 2 private long startupDat ...
- 小技巧 EntityFrameworkCore 实现 CodeFirst 通过模型生成数据库表时自动携带模型及字段注释信息
今天分享自己在项目中用到的一个小技巧,就是使用 EntityFrameworkCore 时我们在通过代码去 Update-Database 生成数据库时如何自动将代码模型上的注释和字段上的注释携带到数 ...