.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 ...
随机推荐
- Django 接收到body后 json.loads() 报编码错误 且在报错之前打印body为空
python版本 3.7.5 Django版本 3.2.5 猜测可能是Django版本的问题,因为之前并没有出现过如此奇葩的问题. body = request.body.decode('utf-8' ...
- laravel框架 forelse和foreach
1. @forelse($data as $v) 循环数据内容..... @empty 数据为空提示... @endforelse 2. @foreach($data as $v) 循环数据内容... ...
- Selenium4+Python3系列(九) - 上传文件及滚动条操作
一.上传文件操作 上传文件是每个做自动化测试同学都会遇到,而且可以说是面试必考的问题,标准控件我们一般用send_keys()就能完成上传, 但是我们的测试网站的上传控件一般为自己封装的,用传统的上传 ...
- day41 6-1 安装配置maven & 6-2 创建maven项目 & 6-3 搭建springMVC框架 & 6-4 springMVC常用注解和封装工作单元
day41 调度器 定义 web.xml配置 控制器Controller 配置自动扫描控制器 在spring-mv.xml中加入 <!-- 启用spring mvc 的注解 --> < ...
- Zabbix技术分享——使用docker-compose快速部署zabbix监控系统
前面文章有提到过使用docker来快速拉起一个zabbix监控系统(详见:如何使用docker快速部署一个zabbix监控系统),但是要一个个执行docker启动命令去将对应的容器启动.如果要配置参数 ...
- bug处理记录:java.util.UnknownFormatConversionException: Conversion = 'Y'
1. 报错: java.util.UnknownFormatConversionException: Conversion = 'Y' at java.util.Formatter$FormatSpe ...
- L1-049 天梯赛座位分配 (20分)
L1-049 天梯赛座位分配 (20分) 天梯赛每年有大量参赛队员,要保证同一所学校的所有队员都不能相邻,分配座位就成为一件比较麻烦的事情.为此我们制定如下策略:假设某赛场有 N 所学校参赛,第 i ...
- 使用浏览器inspect调试app
使用浏览器inspect调试app 在开发混合项目的过程中,常常需要在app环境排查问题,接口可以使用fiddler等工具来抓包,但是js错误就不好抓包了,这里介绍一种调试工具-浏览器. 1.调试过程 ...
- Windows缓冲区溢出实验
Windows缓冲区溢出 前言 windows缓冲区溢出学习笔记,大佬勿喷 缓冲区溢出 当缓冲区边界限制不严格时,由于变量传入畸形数据或程序运行错误,导致缓冲区被"撑暴",从而覆盖 ...
- [编程基础] C++多线程入门10-packaged_task示例
原始C++标准仅支持单线程编程.新的C++标准(称为C++11或C++0x)于2011年发布.在C++11中,引入了新的线程库.因此运行本文程序需要C++至少符合C++11标准. 文章目录 10 pa ...