一、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. XMind2022安装激活

    1. 下载XMind2021并安装​ 2. 激活安装 2.1 找到需要替换文件的目录右击软件,打开文件所在的位置(默认路径:C:\Program Files\XMind),找到resources文件夹 ...

  2. WebApi如何启用Session并且使用

    首先打开项目的Global.asax文件,重新方法init public override void Init() { //注册事件 this.AuthenticateRequest += WebAp ...

  3. Selenium4+Python3系列(八) - Cookie、截图、单选框及复选框处理、富文本框、日历控件操作

    我所在的城市昨天出了近20+的阳性案例,但这丝毫没有 "影响" 到996的工作时间,当然,也没有影响到我想继续更新文章的决心. 一.cookie常用操作入门 上一篇有写过关于coo ...

  4. Day24.1:抽象类的详解

    抽象类 1.1抽象类概述 一个动物类中,我们创建对象时会去new一个动物:但是我们不应该直接创建动物这个对象,因为动物本身就是抽象的,没有动物这种实例,我们创建的应该是一个具体的动物类,比如猫.狗等动 ...

  5. 7. PyQt5 中的多线程的使用(下)

    专栏地址 ʅ(‾◡◝)ʃ 紧接着上一节, 这一节具体介绍 图形化界面 如何给 任务线程传递数据 7.1 from form import Ui_Form from PyQt5.QtWidgets im ...

  6. ajax 跨域请求jsonp

    最近一段时间为这个事情走了不少弯路,现将成功经验分享,避免后来人再绕远路,不过也是第一次使用中间有什么问题大家可以留言探讨. ajax的跨域请求jsonp主要运用于不同系统的交互,一个系统想通过该种方 ...

  7. js day04 实参与形参个数不一致

    // function fn(x, y) {         //     // x = 1         //     // y = undefined         //     // 1 + ...

  8. JavaEE Day09 JavaScript基础

    之前学了html.css两种静态资源 JavaScript是另一种静态资源,今日内容[重点]:JavaScript(是一门编程语言,2days)基础 一.JavaScript简介 1.概念 JavaS ...

  9. Spring IOC源码(一):IOC容器启动流程核心方法概览

    Spring有两种方式加载配置,分别为xml文件.注解的方式,对于xml配置的方式相信大家都不陌生,往往通过new ClassPathXmlApplicationContext("*.xml ...

  10. Jmeter 之跨线程传参

    其他线程使用某个线程中提取的值,比如场景:客户端一直与服务端保持连接的同时进行其他业务操作 1.建立以下两个线程组,并添加相应业务接口 2.发送心跳时,需要token,在用户登录接口下添加提取器提取t ...