一、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 读取配置文件的几种方式的更多相关文章

  1. Spring Boot 入门系列(二十五)读取配置文件的几种方式详解!

    在项目开发中经常会用到配置文件,之前介绍过Spring Boot 资源文件属性配置的方法,但是很多朋友反馈说介绍的不够详细全面.所以, 今天完整的分享Spring Boot读取配置文件的几种方式! S ...

  2. Spring Boot读取配置文件的几种方式

    Spring Boot获取文件总的来说有三种方式,分别是@Value注解,@ConfigurationProperties注解和Environment接口.这三种注解可以配合着@PropertySou ...

  3. spring-boot-route(二)读取配置文件的几种方式

    Spring Boot提供了两种格式的配置文件,分别是properties 和 yml.Spring Boot最大的特点就是自动化配置,如果我们想修改自动化配置的默认值,就可以通过配置文件来指定自己服 ...

  4. java 学习笔记 读取配置文件的三种方式

    package com.itheima.servlet.cfg; import java.io.FileInputStream; import java.io.FileNotFoundExceptio ...

  5. 关于spring读取配置文件的两种方式

    很多时候我们把需要随时调整的参数需要放在配置文件中单独进行读取,这就是软编码,相对于硬编码,软编码可以避免频繁修改类文件,频繁编译,必要时只需要用文本编辑器打开配置文件更改参数就行.但没有使用框架之前 ...

  6. Servlet读取配置文件的三种方式

    一.利用ServletContext.getRealPath()[或getResourceAsStream()] 特点:读取应用中的任何文件.只能在web环境下. private void text3 ...

  7. Spring 读取配置文件的俩种方式

    读取配置可通过 org.springframework.core.env.Environment 类来获取, 也可以通过@Value的方式来获取 注解形式: @PropertySource({&quo ...

  8. Spring读取配置文件的几种方式

    import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; imp ...

  9. C#读取配置文件的几种方式

    配置文件 <?xml version="1.0" encoding="utf-8" ?> <configuration> <con ...

  10. SpringBoot中读取配置文件的几种方式

    1.读取application文件 在application.yml或者properties文件中添加: info: name: xiaoming age: 13 sex: 1 读取方式如下: imp ...

随机推荐

  1. Mysql通过Merge引擎进行分表

    Mysql通过Merge引擎进行分表 转载: https://www.jianshu.com/p/9420a6a8ae2e https://www.cnblogs.com/xbq8080/p/6628 ...

  2. jquery 中的 $(“#”) 与 js中的document.getElementById(“”) 的区别

    以前没注意过,认为jquery 中的 $("#") 与 document.getElementById("") 是一回事,指的是同一个东西. 这次项目开发在使用 ...

  3. linux deb系 apache 配置解析php文件

    安装apache服务器和php服务 sudo apt-get install apache2 php 然后其实一般来说什么也不用安装了就可以成功解析php文件了 制作一个测试文件,test.php放到 ...

  4. JUC源码学习笔记6——ReentrantReadWriteLock

    系列文章目录和关于我 阅读此文需要有AQS独占和AQS共享的源码功底,推荐阅读: 1.JUC源码学习笔记1--AQS独占模式和ReentrantLock 2.JUC源码学习笔记2--AQS共享和Sem ...

  5. 兼容IE全版本及所有市面浏览器的网页变黑白处理方式

    大家应该有发现最近几天不少网站变成了黑白色,在哀悼日时,很多网站都需要全站变成黑白配色,今天对这个实现的技术做了一些探索性了解,在此进行一个记录分享. 使用的样式部分:下面的css部分想必大家应该都可 ...

  6. 【Spring系列】- Spring循环依赖

    Spring循环依赖 生命不息,写作不止 继续踏上学习之路,学之分享笔记 总有一天我也能像各位大佬一样 一个有梦有戏的人 @怒放吧德德 分享学习心得,欢迎指正,大家一起学习成长! 目录 Spring循 ...

  7. 天坑,这样一个lambda随机取数据也有Bug

    前几天,一位网友跟我说他编写的一段很简单的代码遇到了奇怪的Bug,他要达到的效果是从一个List中随机取出来一条数据,代码如下: 1 var random = new Random(); 2 var ...

  8. Relational Learning with Gated and Attentive Neighbor Aggregator for Few-Shot Knowledge Graph Completion 小样本关系学习论文解读

    小样本知识图补全--关系学习.利用三元组的邻域信息,提升模型的关系表示学习,来实现小样本的链接预测.主要应用的思想和模型包括:GAT.TransH.SLTM.Model-Agnostic Meta-L ...

  9. 一文聊透Apache Hudi的索引设计与应用

    Hudi索引在数据读和写的过程中都有应用.读的过程主要是查询引擎利用MetaDataTable使用索引进行Data Skipping以提高查找速度;写的过程主要应用在upsert写上,即利用索引查找该 ...

  10. xxl-job定时调度任务Java代码分析

    简介 用xxl-job做后台任务管理, 主要是快速解决定时任务的HA问题, 项目代码量不大, 功能精简, 没有特殊依赖. 因为产品中用到了这个项目, 上午花了点时间研究了一下运行机制. 把看到的记一下 ...